搜索端口名和端口号的命令

whatportis的Python项目详细描述


https://travis-ci.org/ncrocfer/whatportis.svg?branch=masterhttps://badge.fury.io/py/whatportis.svghttps://img.shields.io/badge/python-2.x%20|%C2%A03.x-blue.svghttps://img.shields.io/github/license/ncrocfer/whatportis.svghttps://img.shields.io/badge/code%20style-black-000000.svg

搜索服务的默认端口号是一项常见的任务。有些端口在/etc/services文件中可用,但列表不完整,此解决方案不可移植。

whatportis是一个简单的工具,可以下载Iana.org数据库,并使用它来探索端口的正式列表。

用法

Whatportis允许您查找与服务关联的端口:

$ whatportis redis
+-------+------+----------+---------------------------------------+
| Name  | Port | Protocol | Description                           |
+-------+------+----------+---------------------------------------+
| redis |6379|   tcp    | An advanced key-value cache and store |
+-------+------+----------+---------------------------------------+

或者,相反地,什么服务与端口号相关联:

$ whatportis 5432
+------------+------+----------+---------------------+
| Name       | Port | Protocol | Description         |
+------------+------+----------+---------------------+
| postgresql |5432| tcp, udp | PostgreSQL Database |
+------------+------+----------+---------------------+

您还可以通过添加--like选项来搜索模式,而不必知道确切的名称:

$ whatportis mysql --like
+----------------+-------+----------+-----------------------------------+
| Name           |  Port | Protocol | Description                       |
+----------------+-------+----------+-----------------------------------+
| mysql-cluster  |1186| tcp, udp | MySQL Cluster Manager             || mysql-cm-agent |1862| tcp, udp | MySQL Cluster Manager Agent       || mysql-im       |2273| tcp, udp | MySQL Instance Manager            || mysql          |3306| tcp, udp | MySQL                             || mysql-proxy    |6446| tcp, udp | MySQL Proxy                       || mysqlx         |33060|   tcp    | MySQL Database Extended Interface |
+----------------+-------+----------+-----------------------------------+

安装

$ pip install whatportis

数据库同步

whatportis使用本地json文件(~/.whatportis_db.json)来探索端口列表。第一次使用将为您创建它,然后您可以使用--update选项来同步它:

$ whatportis --update
Previous database will be updated, do you want to continue? [y/N]: y
Downloading https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv...
Populating database...
14145 ports imported.

json输出

可以使用--json选项将结果显示为json:

$ whatportis 5432 --json
[{"name": "postgresql",
        "port": "5432",
        "protocol": "tcp, udp",
        "description": "PostgreSQL Database"}]

rest api

whatportis也可以作为restful api服务器启动。默认情况下,此功能未启用,您必须安装额外的软件包:

$ pip install whatportis[server]
$ whatportis --server localhost 8080
 * Serving Flask app "whatportis.server"(lazy loading)
 * Environment: prod
 * Debug mode: off
 * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)

端点是整个列表的/ports(可以很长)和搜索特定端口的/ports/<search>

$ curl http://127.0.0.1:8080/ports/3306
{"ports":[{"description":"MySQL","name":"mysql","port":"3306","protocol":"tcp, udp"}]}

$ curl http://localhost:8080/ports/redis
{"ports":[{"description":"An advanced key-value cache and store","name":"redis","port":"6379","protocol":"tcp"}]}

可以使用?like参数搜索模式。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java这种src与构建树时间戳的比较如何更快?   java如何在两个命令处理程序之间通信   java下拉框值更改   Java如何从另一个类中提取字段的值   无字段名的java Jackson序列化   java游戏循环和方法调用   java Spring Security permitAll()匹配器被忽略   java如何在一个方法中将数组中的int作为单独的int传递?   使用ArrayList在Java中实现同步队列   java JButton的操作侦听器在JTable中不工作   java中C++ OOP指针的技巧   java My regex搜索只打印出最后一个匹配项   java如何在Hadoop中序列化非常大的可写对象   spring Paypal JavaSDK支付执行问题   带有SPNEGO SSO的java Tomcat 6仍会提示输入登录名和密码   java HttpResponse主体正在更改   java如何在RxJava中实现链锁   为什么我需要java。lang.ClassNotFoundException:com。mysql。希杰。jdbc。mysqlconnectorjava8时的驱动程序。0.16.jar在类路径中?   java输入错误。即使在接受新输入后仍使用旧输入