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实现清屏的方法
Apr 30 Python
RC4文件加密的python实现方法
Jun 30 Python
Python3使用requests发闪存的方法
May 11 Python
python模块简介之有序字典(OrderedDict)
Dec 01 Python
python 实现删除文件或文件夹实例详解
Dec 04 Python
Win8下python3.5.1安装教程
Jul 29 Python
python 重命名轴索引的方法
Nov 10 Python
Python3 实现串口两进程同时读写
Jun 12 Python
Python字符串格式化输出代码实例
Nov 22 Python
Tkinter中复选菜单是否被选中的判断与设置方式
Mar 04 Python
python实现图像全景拼接
Mar 27 Python
为什么说python更适合树莓派编程
Jul 20 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
检查url链接是否已经有参数的php代码 添加 ? 或 &
2010/02/09 PHP
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
2017/03/08 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python编码爬坑指南(必看)
2016/06/10 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
Python 文件处理注意事项总结
2017/04/10 Python
Python3实现转换Image图片格式
2018/06/21 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
python树的同构学习笔记
2019/09/14 Python
Python requests接口测试实现代码
2020/09/08 Python
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
Ruby如何实现动态方法调用
2012/11/18 面试题
外语专业毕业生自我评价分享
2013/10/05 职场文书
财务分析个人的自荐书范文
2013/11/24 职场文书
祖国在我心中演讲稿
2014/01/15 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
交通事故检查书范文
2014/01/30 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
Python+Appium实现自动抢微信红包
2021/05/21 Python
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫