最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python端口掃描系統(tǒng)實現(xiàn)方法

 更新時間:2014年11月19日 11:59:55   投稿:shichen2014  
這篇文章主要介紹了python端口掃描系統(tǒng)實現(xiàn)方法,可實現(xiàn)簡單的外網(wǎng)IP掃描及寫入MySQL數(shù)據(jù)庫等功能,需要的朋友可以參考下

本文實例講述了python端口掃描系統(tǒng)實現(xiàn)方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

該程序的主要功能如下:

1. 從自有API接口獲取所有的外網(wǎng)IP段;
2. 用Nmap 遍歷掃描所有的IP段,-oX 生成XML的掃描報告;
3. 用xml.etree.ElementTree模塊方法讀取XML文件,將ip,開放端口,對應(yīng)服務(wù)等寫入Mysql數(shù)據(jù)庫。
功能很簡單,沒有滿足老大高大上的需求,所以這個小項目就這么英勇的掛掉了!~~~完全都還沒考慮程序異常終止,掃描服務(wù)器異常歇菜的情況。
貼上代碼:

復(fù)制代碼 代碼如下:
#coding:utf-8
import sys,os,time,subprocess
import MySQLdb
import re,urllib2
import ConfigParser
from IPy import IP
import xml.etree.ElementTree as ET
 
nowtime = time.strftime('%Y-%m-%d',time.localtime(time.time()))
configpath=r'c:portscanconfig.ini'
#傳入api接口主路徑,遍歷獲取所有的ip列表,用IPy模塊格式成127.0.0.1/24的格式
def getiplist(ipinf):
serverarea=['tj101','tj103','dh','dx']
iplist=[]
for area in serverarea:
ipapi=urllib2.urlopen(ipinf+area).read()
for ip in ipapi.split('n'):
#判斷如果ip列表不為空,轉(zhuǎn)換成ip/網(wǎng)關(guān)格式,再格式化成ip/24的格式
if ip:
ip=ip.replace('_','/')
ip=(IP(ip))
iplist.append(str(ip))
ipscan(iplist,nmapathx)
 
#傳遞ip地址文件和nmap路徑
def ipscan(iplist,nmapath):
#古老的去重,對ip文件中的ip地址進(jìn)行去重
newiplist=[]
scaniplist=[]
for ip in iplist:
if ip not in newiplist:
newiplist.append(ip)
#遍歷所有ip段,批量掃描,生成xml格式報告
for ip in newiplist:
filename=nowtime+ip.split('/')[0]+'.xml'
filepath=r"c:portscanscanres\"
nmapcmd=nmapath+' -PT '+ip.strip('rn')+' -oX '+filepath+filename
os.system(nmapcmd)
scaniplist.append(ip)
writeinmysql(scaniplist)
 
#入庫模塊是某大嬸發(fā)寫好的給我 我只是簡單修改了哈,主要是xml.etree.ElementTree模塊。
def writeinmysql(scaniplist):
filepath=r"c:portscanscanres"
for ip in scaniplist:
xmlfile=filepath+'\'+ip+'.xml'
#縮進(jìn)哈 發(fā)文章的時候臨時改的,懶得縮進(jìn)了
root=ET.parse(xmlfile).getroot()
allhost=root.findall('host')
conn=MySQLdb.connect(host='10.5.10.57',user='nxadmin',passwd='nxadmin.com',port=3306,db='scandb',charset='utf8')
cur= conn.cursor()
for host in allhost:
address = host.find('address')
#首先判斷端口是不是open的,如果是再進(jìn)行入庫
for port in host.find('ports').findall('port'):
if port.find('state').attrib['state']=="open":
ip=address.attrib['addr']
portval=port.attrib['portid']
state=port.find('state').attrib['state']
sql = "INSERT INTO portscan (ip,port,state) VALUES(%s,%s,%s)"
params=[ip,portval,state]
cur.execute(sql,params)
conn.commit()
cur.close()
conn.close()
if __name__=="__main__":
#讀取配置文件中要掃描的IP apiurl和nmap安裝文件路徑
config=ConfigParser.ConfigParser()
config.readfp(open(configpath,'rb'))
nmapathx=config.get('nmap','nmapath')
ipinf=config.get('ip','ipinf')
getiplist(ipinf)

配置文件c:portscanconfig.ini中主要是api接口主url,nmap安裝路徑。

感興趣的朋友可以進(jìn)一步完善該實例的功能。希望本文所述對大家的Python程序設(shè)計有所幫助。

相關(guān)文章

  • python正則表達(dá)式常見的知識點匯總

    python正則表達(dá)式常見的知識點匯總

    正則表達(dá)式提供了一些可用的匹配模式,比如忽略大小寫、多行匹配等,下面這篇文章主要給大家介紹了關(guān)于python正則表達(dá)式常見的知識點,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • python PIL Image 圖像處理基本操作實例

    python PIL Image 圖像處理基本操作實例

    這篇文章主要介紹了python PIL Image 圖像處理基本操作實例包括圖片加載、灰度圖,圖像通道分離和合并,在圖像上輸出文字,圖像縮放,圖像閾值分割、 二值化,圖像裁剪需要的朋友可以參考下
    2022-04-04
  • 如何理解及使用Python閉包

    如何理解及使用Python閉包

    閉包是優(yōu)雅的 Python 結(jié)構(gòu),在本文中,我們將了解它們,如何定義閉包,為什么以及何時使用它們.但是在討論什么是閉包之前,我們必須首先理解什么是嵌套函數(shù),以及作用域規(guī)則是如何為它們工作的.那么讓我們開始吧,需要的朋友可以參考下
    2021-06-06
  • Django中如何使用Channels功能

    Django中如何使用Channels功能

    這篇文章主要介紹了在Django中使用Channels功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 基于注解實現(xiàn) SpringBoot 接口防刷的方法

    基于注解實現(xiàn) SpringBoot 接口防刷的方法

    這篇文章主要介紹了基于注解實現(xiàn) SpringBoot 接口防刷的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python+requests實現(xiàn)接口測試的完整步驟

    python+requests實現(xiàn)接口測試的完整步驟

    這篇文章主要給大家介紹了關(guān)于python+requests實現(xiàn)接口測試的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • zip在python中的用法小結(jié)

    zip在python中的用法小結(jié)

    Python中的zip函數(shù)是一個非常有用的工具,可以幫助我們同時處理多個可迭代對象,通過使用zip函數(shù),我們可以將多個列表或迭代器中的元素打包成一個個元組,然后返回由這些元組組成的列表,這篇文章介紹zip在python中的用法,感興趣的朋友一起看看吧
    2024-02-02
  • Python中字符串對齊方法介紹

    Python中字符串對齊方法介紹

    這篇文章主要介紹了Python中字符串對齊方法介紹,本文介紹Python字符串內(nèi)置方法ljust、rjust、center的用法,需要的朋友可以參考下
    2015-05-05
  • Eclipse中Python開發(fā)環(huán)境搭建簡單教程

    Eclipse中Python開發(fā)環(huán)境搭建簡單教程

    這篇文章主要為大家分享了Eclipse中Python開發(fā)環(huán)境搭建簡單教程,步驟簡潔,一目了然,可以幫助大家快速搭建python開發(fā)環(huán)境,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Python+Selenium實現(xiàn)短視頻熱點爬取

    Python+Selenium實現(xiàn)短視頻熱點爬取

    隨著短視頻的大火,不僅可以給人們帶來娛樂,還有熱點新聞時事以及各種知識,刷短視頻也逐漸成為了日常生活的一部分。本文將通過Pyhton依托Selenium來爬取短視頻熱點,需要的可以參考一下
    2022-04-04

最新評論

吐鲁番市| 桦甸市| 西乡县| 铁力市| 临洮县| 芮城县| 通城县| 来凤县| 资阳市| 江城| 榆社县| 双辽市| 苍南县| 沂南县| 镇安县| 泸西县| 蒲江县| 资兴市| 鱼台县| 阆中市| 龙州县| 竹山县| 东丰县| 大化| 库尔勒市| 随州市| 陈巴尔虎旗| 阳朔县| 甘洛县| 连城县| 报价| 香港 | 江山市| 上虞市| 博乐市| 凤凰县| 淳安县| 宝鸡市| 呼伦贝尔市| 喀什市| 灌阳县|