【问题标题】:socket.gaierror: [Errno -2] Name or service not known with Python3socket.gaierror: [Errno -2] Python3 未知的名称或服务
【发布时间】:2017-06-16 13:52:13
【问题描述】:

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

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 代码,没有发现任何错误。

【问题讨论】:

    标签: python sockets


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-09-24
      • 2019-12-05
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 2021-11-05
      • 2013-07-01
      相关资源
      最近更新 更多