2015-11-14 2 views
1
import socket 
from datetime import datetime 

#User input 
ServerIP = raw_input("Enter server IP: ") 
RemoteServerIP = socket.gethostbyaddr(ServerIP) 

print "-" * 60 
print "Please wait, scanning remote host", RemoteServerIP 
print "-" * 60 

#Starting to scan 
StartTime = datetime.now() 

for port in range(1,1025):#ports 1-1024 
    sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
    result = sock.connect_ex((RemoteServerIP, port)) 
    if result == 0: 
     print "Port {}: \t Open".format(port) 
sock.close() 

#caculate the time and print to screen 
EndTime = datetime.now() 
TotalTime = StartTime - EndTime 
print 'Scanning Completed in: ', TotalTime 

Ошибка:Python сокеты, sock.connect ошибок

result = sock.connect_ex((RemoteServerIP, port)) 

File "C:\Python27\lib\socket.py", line 228, in meth 

    return getattr(self._sock,name)(*args) 

TypeError: coercing to Unicode: need string or buffer, tuple found 

ответ

1

socket.gethostbyaddr()returns a tuple. Доступ первый элемент в ipaddrlist должны получить, что вам нужно:

RemoteServerIP = socket.gethostbyaddr(ServerIP)[2][0] 
+0

ти очень помогли мне – Xer

+0

Мое удовольствие! Удачи вам. – Kellen

Смежные вопросы