2015-06-29 100 views
0

我在python編程方面技術熟練,我試圖做一個端口掃描儀 沒有使用任何第三方庫。下面是我迄今爲止編寫的代碼,但問題是當我掃描筆記本電腦的IP地址時,它說所有的端口都關閉了。我的代碼有什麼問題,或者是所有的端口實際關閉了(如果是這樣,爲什麼?)。任何幫助將不勝感激,謝謝。Python端口掃描儀說,所有端口都關閉

from socket import * 

class scanner(): 
    def __init__(self, ip): 
    self.ip = ip 
    self.scan() 

def scan(self): 
    print("Starting scan on host: %s "%(self.ip)) 
    for i in range(0, 10000): 
     s = socket(AF_INET, SOCK_STREAM) 
     try: 
      s.connect((ip, i)) 
      print('Port %d: OPEN' % (i)) 
      s.close() 
     except: 
      print('Port %d: CLOSED' % (i)) 
      s.close() 


ip = input("Input IP address to scan: ") 
scanner(ip) 
+0

您是否嘗試過使用nmap來查看實際打開的端口? –

+1

使用'except作爲e:',並打印'e'和消息「Port%d:CLOSED」 – fferri

+0

你確定嗎?...我試過你的腳本,它工作正常,例如它說端口80是OPEN!... –

回答

0

您需要連接到你傳遞到構造函數中的ip: 代替:

s.connect((ip, i)) 

嘗試:

s.connect((self.ip, i)) 

希望幫助!

+0

謝謝,但它仍然有同樣的問題:( –