python掃描埠
❶ 如何用python編寫一個高效的多線程埠掃描器
使用多線程處理重復邏輯。建議使用3以上,2.x會存在gil線程鎖分配問題。但目前很多伺服器的python都是2.x的
❷ python 查看埠是否開通
1. 可以調用系統命令netstat
比如說22埠,查看如下有無返回
netstat -lnt |版 awk '$6 == "LISTEN" && $4 ~ ":2"'
2. 用權socket mole, 例如
import socket;sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)result = sock.connect_ex(('你的ip',22))if result == 0: print "Port is open"else: print "Port is not open"
❸ 在網上摘抄了一個python編寫的TCP埠掃描程序,求解釋。
你那個寫死的ip是本機ip嗎
相當於判斷當前腳本是否是被直接執行還是被當作模塊調用(同一個文件可以有多種作用,如果直接執行可能輸出測試日誌,但作為模塊一般不輸出,所以要判斷)
❹ 怎麼用python編寫掃描器
這里實現的埠掃描器有兩種,一種是使用socket模塊通過與目標主機相應埠建立內TCP連接(完成完整的三次握手)容,來確定埠是否開放。
核心代碼:
import socket
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.settimeout(2)
sock.connect((host,port))
sock.send('test socket\n')
result = sock.recv(100)if result: print "某某埠開放"else: print "某某埠關閉"sock.close()1234567891011
另一種是直接利用nmap模塊,直接用它內置的方法PortScanner(),輸出返回信息,nmap支持使用ACK、FIN、SYN-ACK等掃描方式,如向指定埠發送TCP SYN包,等待TCP ACk響應來確定該埠是否開放。
核心代碼:
❺ 如何用python寫埠掃描工具
直接利用nmap模塊,直復接用它內置的制方法PortScanner(),輸出返回信息,nmap支持使用ACK、FIN、SYN-ACK等掃描方式,如向指定埠發送TCP SYN包,等待TCP ACk響應來確定該埠是否開放。
❻ python 掃描埠有什麼用
你的問題太模糊了。 最好詳細的說一下你的需求。 因為沒有打開埠這種說法。埠對應的是服務。
❼ 需要用python編寫GUI界面實現區域網ip和埠掃描。在dos下採用nmap實現了,但是到wi
不是可以孵化進程嗎?popen之類的可以嘗試一下。就是把輸入輸出重定向,你可以孵化一個進程執行nmap,向孵化出來的進程中輸入數據,把輸出讀出來。
❽ 一段IP地址埠的掃描用python怎麼寫代碼阿
importsocket
defscan(host,start_port=1,end_port=65535):
result=[]
whilestart_port<=end_port:
#print'scanning%d'%start_port
sk=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
sk.connect((host,start_port))
exceptException,e:
pass#printe
else:
result.append(str(start_port))
sk.close()
start_port=start_port+1
print'openedports: %s'%' '.join(result)
scan('localhost',20,25)
❾ 如何掃描網路中的埠 python
>>>fromsocketimportsocket
>>>defscan_address(host,port):
s=socket()
s.settimeout(3)
try:
s.connect((host,port))
except:
returnFalse
s.close()
returnTrue
>>>scan_address('localhost',5432)
True
❿ python 埠掃描 延時設置多久
#!/usr/bin/python
# -*- coding:utf8 -*-
# Python: 2.7.8
# Platform: Windows
# Authro: wucl
# Program: 埠掃描
# History: 2015.6.1
import socket, time, thread
socket.setdefaulttimeout(3)
def socket_port(ip,port):
"""
輸入和埠號,掃描判斷埠是否開放
"""
try:
if port>=65535:
print u'埠掃描結束'
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result=s.connect_ex((ip,port))
if result==0:
lock.acquire()
print ip,u':',port,u'埠開放'
lock.release()
s.close()
except:
print u'埠掃描異常'
def ip_scan(ip):
"""
輸入IP,掃描IP的0-65534埠情況
"""
try:
print u'開始掃描 %s' % ip
start_time=time.time()
for i in range(0,65534):
thread.start_new_thread(socket_port,(ip,int(i)))
print u'掃描埠完成,總共用時 :%.2f' %(time.time()-start_time)
raw_input("Press Enter to Exit")
except:
print u'掃描ip出錯'
if __name__=='__main__':
url=raw_input('Input the ip you want to scan:\n')
lock=thread.allocate_lock()
ip_scan(url)