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

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无法使用JSF访问托管bean方法   java是制作具有多值类型的HashMap的正确方法   javafx中TicTacToe的java更新UI   windows Java文件。getCanonicalFile()无法处理冒号“:”   java在一个布局屏幕中创建多个(26)按钮   java Android Studio:Gradle构建完成,有251个错误   我们如何在Java上为callfireapiclient编写单元/集成测试?   java无法将1715UTC转换为本地/gmt类型   具有已定义的数字序列的JAVA循环   Java程序正在netbeans中编译,但未在CMD中编译,包不存在   java Android构造函数和onCreate()之间有什么区别?   java配置弹性搜索结果评分   java LibGDX纹理是否可绘制?   java如何在Android中设置应用程序默认打开pdf   java是否有一种创造性的方法将多个参数传递给contentEquals()方法?   java在Android上存储Ed25519私钥