如何使用 python 检查是否仍有来自特定 IP 地址的连接。
问问题
29308 次
4 回答
4
ping IP 地址
import os
#192.168.1.10 is the ip address
ret = os.system("ping -o -c 3 -W 3000 192.168.1.10")
if ret != 0:
print "pc still alive"
无论如何,您真的想检查您尝试连接的 PC 上传入连接的可用性,您需要制作一个程序来接收已经不可能的连接。
于 2013-05-29T08:19:08.660 回答
3
据我了解,OP 正在从某个 ip 寻找活动连接,这意味着他想在本地检查是否存在活动连接。对我来说,它看起来像 netstat 的东西。有几种选择:
您可以使用netstat.py ——Jay Loden, Giampaolo Rodola' 的 netstat 克隆来为您完成这项工作。
补充:
你可以这样做:
import psutil
def remote_ips():
'''
Returns the list of IPs for current active connections
'''
remote_ips = []
for process in psutil.process_iter():
try:
connections = process.get_connections(kind='inet')
except psutil.AccessDenied or psutil.NoSuchProcess:
pass
else:
for connection in connections:
if connection.remote_address and connection.remote_address[0] not in remote_ips:
remote_ips.append(connection.remote_address[0])
return remote_ips
def remote_ip_present(ip):
return ip in remote_ips()
这是它的工作原理:
>>>remote_ips()
['192.168.1.50', '192.168.1.15', '192.168.1.52', '198.252.206.16', '198.252.206.17']
>>>remote_ip_present('192.168.1.52')
True
>>>remote_ip_present('10.1.1.1')
False
于 2013-05-29T13:57:08.233 回答
2
您可以使用套接字库:
import socket
try:
socket.gethostbyaddr(your_ip_adrress)
except socket.herror:
print u"Unknown host"
于 2013-05-29T08:41:38.117 回答
-3
import os
address = "my_ip_address"
os.system('ping ' + address)
于 2013-05-29T08:19:17.853 回答