python例子-Nmap扫描IP并更新

# (1)、将111.206.217.0/24、218.75.110.0/24两个网段IP地址插入proxy.nmap_ip表中,type字段按照个人序号插入。
def readIpByAddr():
    ip_list= []
    for i in range(255):
        i = ‘111.206.217.%s‘ % i
        j = ‘218.75.110.%s‘ % i
        ip_list.append(i)
        ip_list.append(j)
    return ip_list

def readIpByFile(name):
    frlist = open(name,‘r‘).readlines()
    ip_list = []
    for ip in frlist:
        ip = ip.strip()
        ip_list.append(ip)

    return ip_list

def insertIP():
    #iplist = readIpByAddr()
    iplist = readIpByFile(‘iplist.txt‘);
    conn = db_conn(‘192.168.88.103‘,‘root‘,‘cosmysql‘,‘proxy‘)
    cursor = conn.cursor()
    for j in iplist:
        cmdsql = "insert into nmap_ip(ip) values(‘%s‘)" % (j)
        print cmdsql
        cursor.execute(cmdsql)
    cursor.close()
    conn.close()

# (2)、使用nmap扫描上述IP的开放端口,并区分http端口和其它端口,并更新数据库;
def scan_ip():
    conn = db_conn(‘192.168.88.103‘,‘root‘,‘cosmysql‘,‘proxy‘)
    cursor = conn.cursor()
    cursor.execute(‘select ip from nmap_ip‘)
    result = cursor.fetchall()                        #获取所有IP列表
    for ip in result:
        nmap = "nmap %s | grep ‘open‘" %ip[0]        #构造namp扫描语句
        nmap_result = os.popen(nmap).readlines()    #扫描并获取结果
        if nmap_result == []:                            #Host 未开启
            print ip[0],‘:NoOpen!‘
        else :
            print ip[0],‘:Uped,next updateDB‘  #format like :[‘80/tcp  open  http\n‘, ‘443/tcp open  https\n‘]; DB like: ip,http_port,other_port,title,type
            http_port = ‘‘
            other_port =‘‘
            for port_result in nmap_result:            #遍历扫描结果.并构造sql更新语句.
                port_result = port_result.strip().replace(‘/tcp‘,‘‘).split(‘ ‘)
                if port_result[len(port_result)-1] == ‘http‘:
                    http_port = port_result[0]
                else:
                    other_port = other_port + port_result[0] + ‘,‘
            update_sql = "update nmap_ip set http_port=‘%s‘,other_port=‘%s‘ where ip=‘%s‘;" % (http_port,other_port,ip[0])
            print update_sql
            update_reslut = cursor.execute(update_sql)
    cursor.close()    #关闭光标.
    conn.close()    #关闭连接.

# (3)、访问上述IP的http端口,取得title并更新数据库。
def update_title():
    try:
        conn = db_conn(‘192.168.88.103‘,‘root‘,‘cosmysql‘,‘proxy‘)
        cursor = conn.cursor()
        cursor.execute("select IP,http_port from nmap_ip where length(http_port) > 0 ;")
        result = cursor.fetchall()
        pattern = re.compile(‘<title>(.*?)</title>‘)
        for ip in result:
            url = ‘http://%s:%s‘ % (ip[0],ip[1].replace(‘/tcp‘,‘‘))
            print url
            try:
                response = urllib2.urlopen(url)
                html = response.read()
                items = re.findall(pattern,html)
                update_sql = "‘update nmap_ip set title=‘%s‘ where id=‘%s‘ ;" % (items[0][0],ip)
                print ‘update title:‘,update_sql
                cursor.execute(update_sql)

            except Exception, e:
                print e
                pass
    except Exception, e:
        print e
        pass

def main4():
    #insertIP()
    #scan_ip()
    update_title()
if __name__ == ‘__main__‘:
    main4()

其中iplist.txt类似于如下:

101.1.16.123
101.227.252.130
101.4.136.34
101.4.136.66
101.4.60.43
101.4.60.46
101.4.60.47
101.71.27.120
103.246.244.161
103.248.254.172
103.248.254.173
103.248.254.174
103.248.254.175
103.27.24.113
103.27.24.114
103.27.24.114
106.37.177.251
110.173.0.58
110.173.0.58
110.173.54.154
110.75.120.170
111.12.128.167
时间: 2024-10-06 21:11:17

python例子-Nmap扫描IP并更新的相关文章

Nmap扫描教程之基础扫描详解

Nmap扫描教程之基础扫描详解 Nmap扫描基础扫描 当用户对Nmap工具了解后,即可使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具可以分别对主机.端口.版本.操作系统等实施扫描.但是,在实施这些扫描工作之前,需要先简单了解下Nmap工具的使用,以方便后面实施扫描.所以,本章将通过使用Nmap工具实施基础的扫描,来帮助用户了解该工具. Nmap扫描扫描概述 在实施基本的扫描之前,需要先了解一些Nmap网络扫描的基本知识,及需要考虑的一些法律边界问题.本节将对网络基本扫描进行一个简单介

nmap扫描工具的安装与使用

概念 NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包. 其基本功能有三个: (1)是扫描主机端口,嗅探所提供的网络服务 (2)是探测一组主机是否在线 (3)还可以推断主机所用的操作系统,到达主机经过的路由,系统已开放端口的软件版本 nmap端口状态解析 open : 应用程序在该端口接收 TCP 连接或者 UDP 报文. closed :关闭的端口对于nmap也是可访问的, 它接收nmap探测报文并作出响应.但没有应用程序在其上监听. filtered :由于

linux安全---系统更新+弱口令检测工具+nmap扫描工具

1.添加yum及更新系统 a.更新设置: echo  "0 3 * * 6 yum -y  update" >>/var/spool/cron/root b.添加repo源也叫yum源 添加国内mirrors,提速: cd  /etc/yum.repos.d/ mv  ./*  /root/ wget http://mirrors.aliyun.com/repo/Centos-6.repo   ##下载阿里云yum源 yum  makecache  ##生成缓存 yum  

python调用nmap进行扫描

1 #coding=utf-8 2 3 import nmap 4 import optparse 5 import threading 6 import sys 7 import re 8 ''' 9 需安装python_nmap包,支持2.x以及3.x 10 python_nmap包提供了python调用nmap的一系列接口 11 12 (一)重要类及方法: 13 1.创建nmap扫描器 14 class PortScanner() 15 __init__(self, nmap_search

python使用nmap端口扫描

第一版:只支持以逗号分隔的端口,不支持端口范围   Firstly:      sudo apt-get install nmap Secondly:pip install python-nmap Thirdly:copy the code bellow to a file like  scan_network.py #!/usr/bin/env python import nmap import optparse def nmapScan(tgtHost,tgtPort):    nmScan

Nmap扫描原理与用法

Nmap扫描原理与用法 2012年6月16日 1     Nmap介绍 Nmap扫描原理与用法PDF:下载地址 Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具.软件名字Nmap是Network Mapper的简称.Nmap最初是由Fyodor在1997年开始创建的.随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一.最新版的Nmap6.0在2012年5月21日发布,详情请参见:www.nmap.or

最好的 NMAP 扫描策略

# 适用所有大小网络最好的 nmap 扫描策略 # 主机发现,生成存活主机列表 $ nmap -sn -T4 -oG Discovery.gnmap 192.168.56.0/24 $ grep "Status: Up" Discovery.gnmap | cut -f 2 -d ' ' > LiveHosts.txt # 端口发现,发现大部分常用端口 # http://nmap.org/presentations/BHDC08/bhdc08-slides-fyodor.pdf

Python实现端口扫描

误删了之前的shell脚本,之前的shell脚本因为扩展性不强,就打算用python来重新实现. 端口扫描的方法特别多,我这里是把结果处理成json格式,交给后端的django来处理. #!/usr/bin/env python # -*- coding: utf-8 -*- """ Date:2018-05-14 Author:Bob Description:Processing nmap scan results """ import os

操作系统识别-python、nmap

识别操作系统主要是用于操作系统漏洞的利用.不管是windows还是linux系统,在安装完毕后都会默认启动一些服务,开启一些端口. 识别目标主机的系统最简单的方法就是发送ping包,windows起始ttl值默认为128,linux和unix系统默认为64,还有一些特殊的unix系统的ttl值为255.下图为ping局域网内的两台主机,一台为win xp(192.168.0.104),一台为metasploitable2靶机(192.168.0.108): 可以明显地看到,windows发送的p