Python实用第三方库集合-网络篇
个人用过的感觉比较好的Python第三方库集合,会不断更新,欢迎大家关注。(注:部分代码示例来源网络和书籍,并非原创。)
网络相关模块
1.python-nmap
0x01 简介:
python 使用nmap进行扫描的接口,nmap可以生成基于XML的输出,python-nmap库可以很好的解析这类基于XML的输出,这让我们可以在python脚本中使用nmap的全部功能。
0x02 安装:
安装python-nmap前,确保已安装nmap。
pip install python-nmap
0x03 示例:
import nmap
tgthost = '192.168.45.65'
tgtport = '80'
nmScan = nmap.PortScanner()
nmScan.scan(tgthost, tgtport)
state = nmScan[tgthost]['tcp'][int(tgtport)]['state']
print "[*] " + tgthost + " tcp/" + tgtport + " " + state
详细用法请看官方文档。
2.pexpect
0x01 简介:
Python与ssh,ftp,telnet等应用交互的模块,可以用于各种自动化流程与测试等。
0x02 安装:
pip install pexpect
0x03 示例:
以下是与SSH服务器交互过程,包括初次登录认证流程,与命令的发送:
import pexpect
PROMPT = ['# ', '>>> ', '> ','\$ ']
#命令发送模块
def send_command(child, cmd):
child.sendline(cmd)
child.expect(PROMPT)
print child.before
#认证交互模块
def connect(user, host, password):
ssh_newkey = 'Are you sure you want to continue connecting'
connStr = 'ssh ' + user + '@' + host
child = pexpect.spawn(connStr)
ret = child.expect([pexpect.TIMEOUT, ssh_newkey,'[P|p]assword:'])
if ret == 0:
print '[-] Error Connecting'
return
if ret == 1:
child.sendline('yes')
ret = child.expect([pexpect.TIMEOUT, '[P|p]assword:'])
if ret == 0:
print '[-] Error Connecting'
retur