Python:localhost上的端口扫描
我已经用python开发了一个端口扫描程序,它可以检查公共和本地IP的开放端口。 公共IP上的Portscann可以正常工作,但当我在本地主机(127.0.0.1或0.0.0.0)上尝试scann时,它会在每个端口上显示此端口已关闭 代码如下:Python:localhost上的端口扫描,python,sockets,port,Python,Sockets,Port,我已经用python开发了一个端口扫描程序,它可以检查公共和本地IP的开放端口。 公共IP上的Portscann可以正常工作,但当我在本地主机(127.0.0.1或0.0.0.0)上尝试scann时,它会在每个端口上显示此端口已关闭 代码如下: try: for port in range(int(sport), int(eport) + 1): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
for port in range(int(sport), int(eport) + 1):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((remoteServer, port))
if result == 0:
print("[+] Port " + str(port) + " = [Open]")
else:
print("[-] Port " + str(port) + " = [Closed]")
sock.close()
except:
print("\nScan failed!")
time.sleep(2)
print("Check your IP adress.\n")
time.sleep(3)
print("The programm will be closed...")
time.sleep(4)
sys.exit(0)
所以我认为第一种情况(绑定公共ip),它没有绑定127.0.0.1(环回地址),导致扫描失败。或者换句话说,公共ip和环回地址代表两个不同的网络设备。我不完全理解这个问题,到底是什么问题?首先,我扫描了“scanme.nmap.org”,从端口20到端口25(外部)。结果=20,21,23,24和25已关闭,端口22已打开…到目前为止一切正常。但当我尝试扫描127.0.0.1(本地)时,它会显示端口20到25已关闭…您在这些端口上运行任何服务吗?是的…我也尝试了54、80等。但没有任何效果,并且它没有被防火墙阻止…是的,但我只创建了一个套接字,并且它在设备上本地运行…1。在socket服务器配置中,尝试绑定0.0.0.0(不是您的实际公共ip和环回地址),这可能对您的情况有用。2.或者使用另一种方式,您可以在scanner.py中获取公共ip,以避免扫描回圈地址。