python - 套接字.gaierror : [Errno -2] Name or service not known with Python3

标签 python sockets

我正在尝试使用端口扫描程序。

import socket
import subprocess
import sys
from datetime import datetime

subprocess.call('clear', shell=True)

remoteServer    = input("Enter a remote host to scan: ")
remoteServerIP  = socket.gethostbyname(remoteServer)

print( "-" * 60)
print( "Please wait, scanning remote host", remoteServerIP)
print( "-" * 60)

t1 = datetime.now()

try:
    for port in range(1,1025):  
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        result = sock.connect_ex((remoteServerIP, port))
        if result == 0:
            print( "Port {}:     Open".format(port))
        sock.close()

except KeyboardInterrupt:
    print( "You pressed Ctrl+C")
    sys.exit()

except socket.gaierror:
    print( 'Hostname could not be resolved. Exiting')
    sys.exit()

except socket.error:
    print( "Couldn't connect to server")
    sys.exit()

t2 = datetime.now()
total =  t2 - t1
print( 'Scanning Completed in: ', total)

但它不起作用。

Enter a remote host to scan: http://www.osjajinci.com/
Traceback (most recent call last):
  File "portscanner.py", line 12, in <module>
    remoteServerIP  = socket.gethostbyname(remoteServer)
socket.gaierror: [Errno -2] Name or service not known

我正在尝试了解有关套接字的更多信息,我是初学者。我仔细检查了 Python3 代码,没有发现任何错误。

最佳答案

socket.gethostbyname 需要主机名而不是 URL。您必须提供 www.osjajinci.com 而不是 http://www.osjajinci.com/

关于python - 套接字.gaierror : [Errno -2] Name or service not known with Python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44591027/

相关文章:

android - 来自 Django/Python 应用程序的智能手机警报

javascript - Socket.io/SailsJS 如何订阅除id 以外的属性为true 的实例房间?

linux - 什么是 (PF_INET,SOCK_PACKET) 的正确替代品

python-3.x - 如何从服务器端的字符串中使用Elementtree XML解析?

python - UDP广播编程

python - 我怎样才能自动执行这一系列 lldb 命令?

python - 如何从 gRPC 客户端获取状态代码 OK 响应

python - Linux 中 Python 父进程和 C 子进程之间的通信

php - 垃圾邮件检测服务的最佳语言选择

c - 当连接打开但没有发送数据时,send() 和 recv() 返回什么?