下面是使用Python检测主机存活端口及检查存活主机的完整攻略,过程中包含示例说明。
目录
- 背景
- 工具准备
- nmap
- Python
- 使用nmap扫描存活主机
- 使用Python检测主机存活端口
- 结论
背景
在网络安全评估及渗透测试过程中,经常需要检测目标网络中存活的主机及存活端口。本文将介绍如何使用nmap与Python检测主机存活端口及检查存活主机。
工具准备
在进行扫描与检测之前,需要安装以下工具:
- nmap:一款网络发现和安全检查的工具
- Python:一款强大而灵活的编程语言
可以通过以下方式安装nmap和Python:
# 安装nmap
sudo apt-get install nmap
# 安装Python
sudo apt-get install python
使用nmap扫描存活主机
- 打开终端,输入以下命令扫描目标IP段内存活的主机:
bash
sudo nmap -sn 192.168.0.1/24
上述命令将扫描IP段192.168.0.1/24内存活的主机,并输出主机的IP地址、MAC地址和主机名等信息。
- 将扫描结果保存至文件,输入以下命令:
bash
sudo nmap -sn 192.168.0.1/24 -oN hosts.txt
上述命令将扫描结果保存至名为hosts.txt的文件中。
使用Python检测主机存活端口
- 打开终端,输入以下代码:
```python
import socket
def check_port(ip, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((ip, port))
s.shutdown(2)
return True
except:
return False
```
以上代码定义了一个名为check_port的函数,用于检测指定主机的端口是否存活。该函数接收两个参数:ip和port,分别表示主机的IP地址和端口号。
- 调用函数,检测主机存活端口。以下代码展示如何检测主机192.168.0.1的80端口是否存活:
python
if check_port("192.168.0.1", 80):
print("端口存活")
else:
print("端口未存活")
以上代码将调用check_port函数,检测主机192.168.0.1的80端口是否存活,如果存活则输出“端口存活”,否则输出“端口未存活”。
- 批量检测主机存活端口。以下代码展示如何批量检测多个主机的存活端口:
```python
hosts = ["192.168.0.1", "192.168.0.2", "192.168.0.3"]
ports = [80, 443, 22]
for host in hosts:
for port in ports:
if check_port(host, port):
print("{}:{} is open".format(host, port))
else:
print("{}:{} is closed".format(host, port))
```
以上代码将批量检测主机列表中的存活端口,并输出检测结果。
结论
本文介绍了如何使用nmap与Python检测主机存活端口及检查存活主机,通过上述方法可以有效地完成目标网络的发现和安全测试。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用python检测主机存活端口及检查存活主机 - Python技术站