0
点赞
收藏
分享

微信扫一扫

#yyds干货盘点#python使用技巧之网络

1、在Python中要判断两台主机是否可达可以调用ping命令实现。

import subprocess  

def is_reacheable(ip):
if subprocess.call(["ping","-c","1",ip])==0:
print(ip," alive")
def main():
with open('ips.txt') as f:
lines = f.readlines()
for line in lines:
is_reacheable(line)

if __name__ == '__main__':
main()

首先打开ips.txt文件,并通过File对象的readlines函数将所有IP地址读入内存。读人内存以后,IP地址保存在一个列表中,列表的每一项正好是一个地址。为了调用系统中的ping命令,我们使用了subprocess模块。

2、编写端口扫描器

socket模块为操作系统的socket连接提供了一个Python接口。有了socket模块,我们可以完成任何使用socket的任务。

socket模块提供了一个工厂函数socket,socket函数会返回一个socket对象。我们可以给socket函数传递参数,以此创建不同网络协议和网络类型的socket 对象。默认情况下,socket函数会返回一个使用TCP协议的socket对象。

socket工厂函数以默认参数AF_INET和SOCK_STREAM创建了一个名为s的socket对象,该对象可以在进程间进行TCP通信。创建完对象以后,我们使用connect函数连接到远程服务器的20到1000端口。

from socket import *

def scan_conn(host,port):
s = socket(AF_INET,SOCK_STREAM)
try:
s.connect((host,port))
print("alive")
except Exception as e:
print(e)
finally:
s.close()
def main():
host = "192.168.1.101"
for port in range(20,1000):
scan_conn(host,port)

if __name__ == '__main__':
main()

3、使用nmap扫描端口

Python-nmap模块是对nmap命令的封装。nmap是知名的网络探测和安全扫描程序。因为功能强大、跨平台、开源、文档丰富等诸多优点,在安全领域使用非常广泛。在使用之前,需要先安装nmap。

sudo apt-get install nmap

nmap的使用非常灵活,功能又很强大,因此nmap有很多命令行选项。使用nmap时,首先需要确定要对哪些主机进行扫描,然后确定怎么进行扫描。nmap可以端口扫描、检查网络上所有在线的主机。

使用-sn可以检测哪些ip是在线的

nmap -sn 192.168.1.*

使用nmap进行端口扫描,不加参数默认扫描常用端口

nmap 192.168.1.1

如果需要指定端口需要增加-p参数,如

nmap 192.168.1.1 -p 8080,8081,8082

Python的Python-nmap仅仅是对nmap的封装,因此要使用Python-nmap,必须先了解nmap。Python-nmap相对于nmap,主要的改进在于对输出结果的处理。Python-nmap将nmap的输出结果保存到字典之中,我们只需要通过Python的字典就可以获取到nmap的输出信息不用像Shell脚本一样通过字符串处理和正则表达式来解析nmap的结果。

Python-nmap是开源的库,因此,在使用之前需要手动进行安装。

pip install python-nmap

Python-nmap的使用非常简单,我们只需要创建一个PortScanner对象,并调用对象的scan方法就能够完成基本的nmap端口扫描。  

import nmap

nm = nmap.PortScanner()
nm.scan('192.168.1.101,110','22-1000')
举报

相关推荐

0 条评论