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

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

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

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

該程序的主要功能如下:

1. 從自有API接口獲取所有的外網(wǎng)IP段;
2. 用Nmap 遍歷掃描所有的IP段,-oX 生成XML的掃描報(bào)告;
3. 用xml.etree.ElementTree模塊方法讀取XML文件,將ip,開放端口,對(duì)應(yīng)服務(wù)等寫入Mysql數(shù)據(jù)庫(kù)。
功能很簡(jiǎn)單,沒有滿足老大高大上的需求,所以這個(gè)小項(xiàng)目就這么英勇的掛掉了!~~~完全都還沒考慮程序異常終止,掃描服務(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):
#古老的去重,對(duì)ip文件中的ip地址進(jìn)行去重
newiplist=[]
scaniplist=[]
for ip in iplist:
if ip not in newiplist:
newiplist.append(ip)
#遍歷所有ip段,批量掃描,生成xml格式報(bào)告
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)
 
#入庫(kù)模塊是某大嬸發(fā)寫好的給我 我只是簡(jiǎn)單修改了哈,主要是xml.etree.ElementTree模塊。
def writeinmysql(scaniplist):
filepath=r"c:portscanscanres"
for ip in scaniplist:
xmlfile=filepath+'\'+ip+'.xml'
#縮進(jìn)哈 發(fā)文章的時(shí)候臨時(shí)改的,懶得縮進(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)行入庫(kù)
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)一步完善該實(shí)例的功能。希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python正則表達(dá)式常見的知識(shí)點(diǎn)匯總

    python正則表達(dá)式常見的知識(shí)點(diǎn)匯總

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

    python PIL Image 圖像處理基本操作實(shí)例

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

    如何理解及使用Python閉包

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

    Django中如何使用Channels功能

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

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

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

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

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

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

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

    Python中字符串對(duì)齊方法介紹

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

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

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

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

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

最新評(píng)論

萨迦县| 台前县| 得荣县| 龙江县| 卢氏县| 特克斯县| 双流县| 兴业县| 德清县| 汾阳市| 鄂州市| 衡南县| 连州市| 垫江县| 商河县| 澄城县| 屯门区| 子洲县| 渭南市| 龙江县| 平塘县| 马龙县| 沧州市| 合作市| 周口市| 京山县| 北川| 海原县| 双流县| 曲周县| 遂昌县| 蒙山县| 华池县| 肥东县| 延吉市| 内江市| 无锡市| 进贤县| 马尔康县| 江西省| 额济纳旗|