云服务器网:购买云服务器和VPS必上的网站!

Python实现的快速网络扫描工具及其使用方法

Python实现快速网络扫描的工具有很多,常见的有nmap、masscan等,本文介绍怎样使用Python编写简单的网络扫描工具。
1.安装所需库
使用Python进行网络扫描需要安装的库有socket、struct、os、argparse等,可使用pip命令

python实现快速网络扫描工具有很多,常见的有nmap、masscan等,本文介绍怎样使用Python编写简单的网络扫描工具。

1.安装所需

使用Python进行网络扫描需要安装的库有socket、struct、os、argparse等,可使用pip命令安装:

pip install argparse

其他库为Python自带库,无需额外安装。

2.编写代码

以下是一个简单的网络扫描代码,可以扫描指定IP地址段的主机会不会开放了指定端口(如80、8080等):

import socket
import struct
import os
import argparse


def scan(ip, start_port, end_port):
    for port in range(start_port, end_port+1):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(2)
        try:
            s.connect((ip, port))
            print('Port', port, 'is open')
        except:
            print('Port', port, 'is closed')
        s.close()


def main():
    parser = argparse.ArgumentParser(description='Simple port scanner')
    parser.add_argument('ip', help='IP address to scan')
    parser.add_argument('port_range', help='Port range to scan (e.g. 1⑹5535)')
    args = parser.parse_args()

    ip = args.ip
    start_port, end_port = map(int, args.port_range.split('-'))

    scan(ip, start_port, end_port)


if __name__ == '__main__':
    main()

该代码使用了Python自带的socket库,首先通过socket.socket()方法创建一个TCP连接,连接目标IP和端口,如果连接成功则打印端口为开放状态,否则打印端口为关闭状态。

其中使用了argparse库解析命令行参数,用户可以通过命令行输入要扫描的IP地址和端口范围,例如:

python scan.py 127.0.0.1 80-8080

该命令将会扫描127.0.0.1这个IP地址段中80⑻080这个范围内的端口会不会开放。

3.使用方法

将上述代码保存为scan.py文件,通过命令行进入该文件所在目录,履行以下命令:

python scan.py [IP地址] [端口范围]

例如,扫描127.0.0.1这个IP地址段中80⑻080这个范围内的端口会不会开放:

python scan.py 127.0.0.1 80-8080

输出结果以下:

Port 80 is open
Port 81 is closed
Port 82 is closed
...
Port 8079 is closed
Port 8080 is open

说明127.0.0.1这个IP地址段中80和8080这两个端口是开放的。

可以通过指定区别的IP地址和端口范围进行扫描,如:

python scan.py pidancode.com 1-100

输出结果以下:

Port 1 is closed
Port 2 is closed
...
Port 80 is open
Port 81 is closed
...
Port 100 is closed

说明pidancode.com这个主机上开放了80端口。

4.注意事项

在扫描时尽可能不要扫描大范围的端口或IP地址段,会对网络造成较大的负荷和压力。

在进行实际扫描时务必遵照相关法律法规,不得进行歹意攻击等行动。

本文来源:https://www.yuntue.com/post/83246.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注