盈讯足球比分网|华体足球比分直播|
关注我们
QRcode 邮件联系 QRcode

Python端口扫描可指定IP段(速度超快)

 feng  3,472 ℃  0条点评

#!/usr/local/bin/python

#-*- coding: UTF-8 -*-
####################################################################
##################################################

# Python 扫描IP段 ?指定端口是否开放

# ?刚学写的不好请大家见谅
##################################################
import socket
import threading,time
socket.setdefaulttimeout(10) ?#设置了全局默认超时时间
#查看IP端口是否开放
class socket_port(threading.Thread):
? ? def __init__(self,cond, name):
? ? ? ? super(socket_port, self).__init__()
? ? ? ? self.cond = cond
? ? ? ? self.cond.set()#将标?#27573;?#35774;为Ture
? ? ? ? self.HOST = name
? ? def run(self):
? ? ? ? #time.sleep(1) #确保先运行Seeker中的方法
? ? ? ? try:
? ? ? ? ? ? PORT=21
? ? ? ? ? ? s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
? ? ? ? ? ? s.connect((self.HOST,PORT))
? ? ? ? ? ? print""
? ? ? ? ? ? print self.HOST,u":",PORT,u"端口开放",
? ? ? ? ? ? sql_desc = "insert into port21(IP,TIME) VALUES('%s','%s')"%(self.HOST,time.strftime('%Y.%m.%d-%H.%M.%S'))
? ? ? ? ? ? if mysql.mysql_insert(sql_desc): #添加
? ? ? ? ? ? ? ? print u"添加?#26194;?
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? print u"添?#37038;?#36133;"
? ? ? ? ? ? mysql.mysql_S() ?#保存数据
? ? ? ? ? ? #self.cond.wait()#堵塞线程,直到Event对象内部标?#27573;?#34987;设为True或超?#20445;?#22914;果提供了参数timeout)。
? ? ? ? ? ? self.cond.set()#将标?#27573;?#35774;为Ture
? ? ? ? ? ? return 1
? ? ? ? except:
? ? ? ? ? ? print ".",
? ? ? ? ? ? #print self.HOST,u":",PORT,u"端口未开放"
? ? ? ? ? ? #self.cond.wait()#堵塞线程,直到Event对象内部标?#27573;?#34987;设为True或超?#20445;?#22914;果提供了参数timeout)。
? ? ? ? ? ? self.cond.set()#将标?#27573;?#35774;为Ture
? ? ? ? return 0
##
#socket_port("192.168.2.1")
#if socket_port("192.168.2.100"):
# ? ?print "开放"
#else:
# ? ?print "未开放"
def ip2num(ip):
? ? ip = [int(x) for x in ip.split('.')]
? ? return ip[0]<<24 | ip[1]<<16 | ip[2]<<8 | ip[3]
def num2ip(num):
? ? #time.sleep(0.05) #50ms
? ? #time.sleep(0.1) #s
# ? ?data='%s.%s.%s.%s' % ( ?(num & 0xff000000) >> 24,
# ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (num & 0x00ff0000) >> 16,
# ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (num & 0x0000ff00) >> 8,
# ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?num & 0x000000ff ?)
# ? ?#socket_port(data) ?#查看IP端口是否开放
? ? if num>=IPend:
? ? ? ? print u"IP导入数组完成"
? ? return '%s.%s.%s.%s' % ( ?(num & 0xff000000) >> 24,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (num & 0x00ff0000) >> 16,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (num & 0x0000ff00) >> 8,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? num & 0x000000ff ?)
def gen_ip(ip1,ip2): ?#返回数组
# ? ?ip
# ? ?global IPend
# ? ?start, IPend = [ip2num(x) for x in ip.split('-')]
? ? global IPend
? ? IPend=ip2
? ? return [num2ip(num) for num in range(ip1,ip2+1) if num & 0xff]
##################################################
import sys
import os
import atexit
def close(): ?#自动重启本程序
? ? try:
? ? ? ? print u"------------------自动重启本程序------------------"
? ? ? ? mysql.mysql_S() ?#保存数据
? ? ? ? mysql.mysql_close() ?#关闭数据库
? ? # ? ?python = sys.executable
? ? # ? ?os.execl(python, python, * sys.argv)
? ? # ? ?mysql.mysql_close() ?#关闭数据库
? ? ? ? time.sleep(10)
? ? ? ? # ? ?os.system('python txt.py')
? ? ? ? python = sys.executable
? ? ? ? os.execl(python, python, * sys.argv)
? ? ? ? #########
? ? except:
? ? ? ? print u"------------------自动重启本程序---异常------------------"
? ? ? ? sys.exit(0) ?#结束进程
def dqsqlite_bcini(): ?#扫描完成后 ?读取配置信息后在自+1 ?在读取数据库相应信息 ?在保存信息 ?重启程序就可以了
? ? try:
? ? ? ? ini.ini_get() ?#读取INI
? ? ? ? abc=int(ini.ID)+1 ? #获取要查询的ID
? ? ? ? sql_desc = "SELECT * FROM ip where ID='%s'"%(abc)
? ? ? ? n = mysql.cursor.execute(sql_desc)
? ? ? ? mysql.cursor.scroll(0)
? ? ? ? for row in mysql.cursor.fetchall():
? ? ? ? ? ? ini.ini_write(abc,row[1],row[2]) ?#修改INI
? ? #获取游标
# ? ? ? ?sqlite_cursor = sqlite.sqlite_conn.cursor()
# ? ? ? ?sql_desc = "SELECT * FROM ip where ID='%s'"%(abc)
# ? ? ? ?sqlite_cursor.execute(sql_desc)
# ? ? ? ?for row in sqlite_cursor:
# ? ? ? ? ? ?ini.ini_write(abc,row[1],row[2]) ?#修改INI
# ? ? ? ?sqlite.sqlite_cursor.close() ? #关闭游标
? ? ? ? #return 1
? ? ? ? atexit.register(close)#自动重启本程序
? ? except:
? ? ? ? print u"数据库读取异常!!"
? ? ? ? #return 0
# ? ?sqlite.sqlite_S() ?#保存数据
?# ? sqlite.sqlite_close() ?#关闭数据库
? ? ? ? atexit.register(close)#自动重启本程序
import ini
import mysql
if __name__=='__main__':
? ? try:
? ? ? ? mysql.mysql_open() ?#连接数据库
? ? ? ? ini.ini_get() ?#读取INI
? ? ? ? print u"开始IP:",ini.IP1,u"-------",u"结束IP:",ini.IP2
? ? ? ? if ini.IP1>=ini.IP2:
? ? ? ? ? ? print u"IP以扫描完成"
? ? ? ? ? ? dqsqlite_bcini() ?#扫描完成后 ?读取配置信息后在自+1 ?在读取数据库相应信息 ?在保存信息 ?重启程序就可以了
? ? ? ? print u"IP还没扫描完"
? ? ? ? list_ip=gen_ip(ip2num(ini.IP1),ip2num(ini.IP2))
? ? ? ? I1 = 0 #得到list的第一个元素
? ? ? ? print u"开始扫描IP"
? ? ? ? ip=0
? ? ? ? while I1 < len(list_ip):
? ? ? ? ? ? if ip>=255:
? ? ? ? ? ? ? ? ini.ini_write(int(ini.ID),list_ip[I1],ini.IP2) ?#修改INI
? ? ? ? ? ? ? ? ip=0
? ? ? ? ? ? ? ? print list_ip[I1]
? ? ? ? ? ? ip = ip + 1
? ? ? ? ? ? #print list_ip[I1]
? ? ? ? ? ? time.sleep(0.1) #确保先运行Seeker中的方法
? ? ? ? ? ? cond = threading.Event()
? ? ? ? ? ? hider = socket_port(cond,list_ip[I1])
? ? ? ? ? ? hider.start()
? ? ? ? ? ? I1 = I1 + 1 ? #一层
? ? ? ? print u"IP扫描完?#23665;?#20174;新导入"
? ? ? ? dqsqlite_bcini() ?#扫描完成后 ?读取配置信息后在自+1 ?在读取数据库相应信息 ?在保存信息 ?重启程序就可以了
? ? except:
? ? ? ? #dqsqlite_bcini() ?#扫描完成后 ?读取配置信息后在自+1 ?在读取数据库相应信息 ?在保存信息 ?重启程序就可以了
? ? ? ? atexit.register(close)
#######################################################################
本文标签:
做SEO必须要学会分析数据
匿名者Anonymous再次出动,Paypal和多个网站遭殃
年度盘点 | 安全测试者偏爱的安全测试工具年度盘点 | 安全测试者偏爱的安全测试工具开源工具Zeus-Scanner宙斯扫描器开源工具Zeus-Scanner宙斯扫描器国产开源内网信息收集工具v1.0国产开源内网信息收集工具v1.0Joy:一款用于捕获和分析网络内部流量数据的工具Joy:一款用于捕获和分析网络内部流量数据的工具

已有0条评论,欢迎点评!

smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley

国?#20351;?#20363;, 沙发拿下 . . .


盈讯足球比分网
大乐透近30期走势图 pk10人工免费计划 3000元倍投法稳赚 后一大小单双稳赚技巧 双色球稳赚不赔绝招 11选三技巧稳赚 北京pk赛车彩票平台 功夫计划手机版 双色球开奖视频软件 单双大小如何压才稳赚