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)