def _get_listening_ipaddrs(proc_name):
"""
Search for proc_name running on the node and return a list of unique IPs on which proc_name
listens. Otherwise, return [].
"""
proc_listening_ips = []
for proc in psutil.process_iter():
# Use as_dict() to avoid API changes across versions of psutil.
pdict = proc.as_dict(attrs=['name'])
if pdict['name'] == proc_name:
# connections() API has changed across psutil versions also.
try:
conns = proc.get_connections(kind="inet")
# pylint: disable=bare-except
except:
conns = proc.connections(kind="inet")
for con in conns:
if con.status == "LISTEN":
proc_listening_ips.append(con.laddr[0])
return list(set(proc_listening_ips))
评论列表
文章目录