فرمان برای یافتن نام و شماره پورت. اغلب اتفاق می افتد که ما باید پورت پیش فرض یک سرویس خاص را بدانیم، یا برعکس - معمولاً چه سرویس هایی در یک پورت خاص گوش می دهند. برای این وظایف است که ابزار Whatportis طراحی شده است.
It's a common task to search the default port number of a service. Some ports are available in the /etc/services
file, but the list is not complete and this solution is not portable.
Whatportis is a simple tool that downloads the Iana.org database and uses it to explore the official list of ports.
Whatportis allows you to find what port is associated with a service:
$ whatportis redis +-------+------+----------+---------------------------------------+ | Name | Port | Protocol | Description | +-------+------+----------+---------------------------------------+ | redis | 6379 | tcp | An advanced key-value cache and store | +-------+------+----------+---------------------------------------+
Or, conversely, what service is associated with a port number:
$ whatportis 5432 +------------+------+----------+---------------------+ | Name | Port | Protocol | Description | +------------+------+----------+---------------------+ | postgresql | 5432 | tcp, udp | PostgreSQL Database | +------------+------+----------+---------------------+
You can also search a pattern without knowing the exact name by adding the --like option:
$ 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 uses a local JSON file (~/.whatportis_db.json) to explore the list of ports. The first usage will create it for you, then you can use the --update option to synchronize it :
$ 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.
You can display the results as JSON, using the --json option :
$ whatportis 5432 --json [ { "name": "postgresql", "port": "5432", "protocol": "tcp, udp", "description": "PostgreSQL Database" } ]
Whatportis can also be started as a RESTful API server. This feature is not enabled by default, you must install an extra package :
$ 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)
The endpoints are /ports for the whole list (can be long) and /ports/ to search a specific port :
$ 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"}]}