如何使用python检查是否仍存在来自特定IP地址的连接。
答案 0 :(得分:3)
您可以使用socket library:
import socket
try:
socket.gethostbyaddr(your_ip_adrress)
except socket.herror:
print u"Unknown host"
答案 1 :(得分:3)
据我所知,OP正在寻找活动连接 FROM 某些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
答案 2 :(得分:2)
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上的传入连接的可用性,您需要创建一个程序来接收已经无法解决的连接。
答案 3 :(得分:-2)
import os
address = "my_ip_address"
os.system('ping ' + address)