Dorado's host
首页
日常
追番
随笔
工作
技术杂项
开源项目
学习
java基础
mit 6.S081
算法
写题目
学知识
友链
留言
关于我
登录
首页
日常
追番
随笔
工作
技术杂项
开源项目
学习
java基础
mit 6.S081
算法
写题目
学知识
首页
›
技术杂项
›
端口查询
端口查询
2020-11-23 21:42
1158
0
网络编程要求查询本地端口以及局域网内端口信息然后做成一个demo写论文。。。。 C++语言写这个也太麻烦了,而且我C++太垃圾了(555),于是就用python写把 百度了一下发现了还挺简单的,特此记录 老规矩,先看代码 ```python import psutil def get(): net_list = psutil.net_connections() ret_list = [] for net in net_list: pid = net.pid if psutil.pid_exists(pid): process = psutil.Process(pid) laddr = net.laddr dict = {"ip": laddr.ip, "port": laddr.port, "id": process.pid, "name": process.name(), "status": process.status()} ret_list.append(dict) return ret_list ``` psutil是一个开源切跨平台的库,其提供了便利的函数用来获取才做系统的信息,比如CPU,内存,磁盘,网络等。此外,psutil还可以用来进行进程管理,包括判断进程是否存在、获取进程列表、获取进程详细信息等。 详细的库的用法请看这篇博客: https://www.cnblogs.com/iamjianghao/p/11894623.html 接下来分析代码: 首先执行 net_connections方法获得当前电脑的端口占用情况,其作用如下: > 以列表的形式返回每个网络连接的详细信息(namedtuple)。命名元组包含fd, family, type, laddr, raddr, status, pid等信息。kind表示过滤的连接类型,支持的值如下:(默认为inet) 所以我们现在得到了端口的信息以及当前占用端口的pid,有了pid我们就可以用psutil.Process(pid)方法来获得当前Process对象,于是我们就得到了当前端口以及占用端口程序的所有信息。 至于如何查看当前局域网下的端口以及进程,我觉得可以用socket连接其他主机,然后让它也运行这个程序把结果传给我就好了。 具体程序我之后写好了会发在博客上。
相关文章
评论
(暂无评论)
取消回复
发表评论
dorado
一个平平无奇的打工人
17
文章
1
评论
12
栏目
热门文章
寻找两个正序数组的中位数
0 评论
ubutnu下的git常用命令
0 评论
IDEA快捷键一览(转)
0 评论
每日一报自动点击脚本
0 评论
端口查询
0 评论
更多