我正在编写一个小的portscan程序,运行时出现以下错误:
socket.gaierror: [Errno 8] nodename nor servname provided, or not known.
我发现一些帖子中讨论了同样的错误,但这都与其他模块有关。我试了又试,所以我知道错误是从哪里来的。在
我尝试了:
socket.gethostbyname()
并输入例如域名时,将获得该主机的IP。在127.0.0.1
,代码就可以工作了。在为什么下面的代码不能处理文件中的条目?我是否在加载/读取文件时出错?提前谢谢,真的很好奇这里有什么问题。在
import os
import subprocess
import socket
import sys
def load_hosts():
file = open('hosts.txt', 'r')
hosts = file.readlines()
return hosts
def portscan():
hosts = load_hosts()
port = 80
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(4)
for host_ip in hosts:
result = sock.connect_ex((host_ip, port)) #Error is here
if result == 0:
print('[*] Port is open')
else:
print('[-] Port is closed')
sock.close()
目前没有回答
相关问题 更多 >
编程相关推荐