python基础教程之udp端口扫描


Posted in Python onFebruary 10, 2014

一、概述
任务描述:
开发一个程序,用于获取局域网中开启snmp服务的主机ip地址列表,并写入相应文件以便其它程序使用。
背景知识:
SNMP是基于UDP的,而且标准的SNMP服务使用161和162端口。
思路:
1、获取局域在线主机列表;
2、获取各个主机的snmp端口(比如161)开启状况;
3、以特定格式写入特定文件。
这里只实现前两步。

二、nmap实现
1、安装nmap
Linux平台(CentOS为例):

yum install nmap -y    
widows平台(下载地址):
http://nmap.org/download.html#windows

2、获取在线主机列表
以192.168.1.0/24网段为例:

nmap -sn 192.168.1.0/24  
或者指定ip范围扫描:

nmap -sn 192.168.1.1-254  
参数解释:
-sn: Ping扫描,只进行主机发现,不进行端口扫描。

3、获取主机端口开启状况
以192.168.1.100为例

nmap -p 161 -sU 192.168.1.100  
参数解释:

-p 161 : 扫描161端口  
-sU    : 进行UDP扫描   
nmap返回结果:

open            :   开放
closed          :   关闭
filtered        :   端口被防火墙IDS/IPS 屏蔽,无法确定其状态
unfiltered      :   端口没有被屏蔽,但是否开放需要进一步确定
open|filtered   :   端口是开放的或被屏蔽
closed|filtered :   端口是关闭的或被屏蔽
4、nmap捷径

扫描192.168.1.0/24网段的161端口如下: 
nmap -p 161 -sU 192.168.1.0/24  
三、python实现(借助python-nmap)
nmap的返回值有很多数据,需要自行写程序进行解析,比如对192.168.1.100的161端口进行扫描的结果:

Nmap scan report for 192.168.1.100
Host is up (0.00024s latency).
PORT    STATE  SERVICE
161/udp closed snmp
MAC Address: 10:BF:5A:6A:BA:48 (Unknown)
这里有个python开发的nmap解析库,原理是调用nmap命令,并对其结果进行解析,返回python能识别的数据结构:
名称 : python-nmap
url : http://xael.org/norman/python/python-nmap/python-nmap-0.1.4.tar.gz

示例(扫描局域网各个主机的snmp服务开启状况):

#! /usr/bin/python
import nmap 
nm = nmap.PortScanner()
nm.scan(hosts='192.168.1.0/24', arguments='-p 161 -sU ')
hosts_list = [(x, nm[x][u'udp'][161]['state']) for x in nm.all_hosts()]
for host, status in hosts_list:
    print('{0}:{1}'.format(host, status))
Python 相关文章推荐
python中二维阵列的变换实例
Oct 09 Python
Python去除列表中重复元素的方法
Mar 20 Python
Python访问纯真IP数据库脚本分享
Jun 29 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
python机器学习之神经网络(三)
Dec 20 Python
Django forms组件的使用教程
Oct 08 Python
numpy基础教程之np.linalg
Feb 12 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 Python
pygame实现飞机大战
Mar 11 Python
Python多线程threading创建及使用方法解析
Jun 17 Python
音频处理 windows10下python三方库librosa安装教程
Jun 20 Python
Python内置函数property()如何使用
Sep 01 Python
python网页请求urllib2模块简单封装代码
Feb 07 #Python
python解析xml模块封装代码
Feb 07 #Python
python 解析XML python模块xml.dom解析xml实例代码
Feb 07 #Python
python合并文本文件示例
Feb 07 #Python
python实现哈希表
Feb 07 #Python
python处理cookie详解
Feb 07 #Python
urllib2自定义opener详解
Feb 07 #Python
You might like
简单谈谈favicon
2015/06/10 PHP
[IE&FireFox兼容]JS对select操作
2007/01/07 Javascript
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
读jQuery之七 判断点击了鼠标哪个键的代码
2011/06/21 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
Bootstrap基本组件学习笔记之进度条(15)
2016/12/08 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
Python中的字符串类型基本知识学习教程
2016/02/04 Python
Python判断文件和字符串编码类型的实例
2017/12/21 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
如何用python写个模板引擎
2021/01/14 Python
flask框架中的cookie和session使用
2021/01/31 Python
任意存:BOXFUL
2018/05/21 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
高中毕业生自我鉴定
2013/11/03 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
硕士学位申请报告
2015/05/15 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript