Pyhacker實現端口掃描器
主要是以Nmap舉例編寫,其中涉及的協議暫不過多討論
喜歡用Python寫腳本的小夥伴可以跟著一起寫一寫呀。
編寫環境:Python2.x
00×1:需要用到的模塊
需要用到的模塊如下:
import socket import ipaddr
00×2:創建socket對象
首先我們先進寫一個簡單的通信
先創建socket對象
sockect = socket.socket()
因為主要就是進行端口掃描,不需要等待對方回復通信,所以我們需要再用異常處理
Ok,沒毛病
00×3:處理ip
我們接下來處理ip,當輸入一個 127.0.0.1/24 讓他自動分成ip
這就要用到ipaddr
ip = raw_input('\nIP:') ips = ipaddr.IPNetwork(ip) for ip in ips: print ip
自動生成C段ok,當然你輸入B段也是可以的,他會自動處理
強制轉換為字符串,不然無法執行
ip = str(ip)
00×4:測試用例
我們來測試一下,以百度為例:
速度有點慢,有的可能會超時,我們再限制一下超時時間
try: sockect.settimeout(0.2) sockect.connect((ip,port)) print "\n[+]%s open %s"%(ip,port) except: sockect.close()
修改後快瞭很多
00×5:設定掃描端口
我們來設定掃描的端口
portlist = [21,80,445,3306,27017,6379.139,135]
ok,這就完成瞭一個端口掃描器
當然你可以自定義端口,以及根據自己的需求來編寫
00×6:完整代碼
#!/usr/bin/python #-*- coding:utf-8 -*- import socket import ipaddr def portscan(ip,port): sockect = socket.socket() try: sockect.settimeout(0.2) sockect.connect((ip,port)) print "[+]%s open %s"%(ip,port) except: sockect.close() portlist = [21,80,443,445,3306,27017,6379] if __name__ == '__main__': ip = raw_input('\nIP:') print "" ips = ipaddr.IPNetwork(ip) for ip in ips: for port in portlist: portscan(str(ip),port)
以上就是Pyhacker實現端口掃描器的詳細內容,更多關於Pyhacker端口掃描器的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- 利用Python腳本寫端口掃描器socket,python-nmap
- Python編寫nmap掃描工具
- Python實現端口掃描器的示例代碼
- PyHacker編寫指南引用Nmap模塊實現端口掃描器
- Python中的socket網絡模塊介紹