承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

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

管理员 2023-04-20 09:28:15 软件开发 95 ℃ 0 评论 8051字 收藏

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

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地址段,会对网络造成较大的负荷和压力。

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

文章来源:丸子建站

文章标题:Python实现的快速网络扫描工具及其使用方法

https://www.wanzijz.com/view/9161.html

TAG: python
X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信