Python检测端口开放脚本
我们可以用ping ip
来测试服务器是否能够正常连接,但需要测试某个特定端口是否开放就有点麻烦了。
解决方案:
python socket库实现:
import socket
import argparse
def port_checker(ip_address_or_domain, port_number):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
sock.connect((str(ip_address_or_domain), int(port_number)))
return "PORT {0} is OPEN on '{1}'.".format(port_number, ip_address_or_domain)
except Exception as e:
print(str(e))
return "PORT {0} is CLOSED on '{1}'.".format(port_number, ip_address_or_domain)
finally:
sock.close()
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Port checker script")
parser.add_argument("ip_address", help="IP地址或域名")
parser.add_argument("port", type=int, help="端口号")
args = parser.parse_args()
# 调用 port_checker 函数
result = port_checker(args.ip_address, args.port)
print(result)
使用:
python port_test.py IP地址或者域名 端口
效果:
就可以检测到端口是否开放了。