2017-06-16 369 views
1

我想使用端口扫描程序。socket.gaierror:[Errno -2]未知的名称或服务与Python3

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 

我想了解更多关于套接字,我begginer.I有双重检查Python3代码,无法找到任何错误。

回答

4

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

相关问题