Java中的端口到服务名称?

我的服务文件(C:\ WINDOWS \ system32 \ drivers \ etc \ services)有一堆端口到服务的映射:

echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users #Active users systat 11/udp users #Active users daytime 13/tcp daytime 13/udp qotd 17/tcp quote #Quote of the day qotd 17/udp quote #Quote of the day chargen 19/tcp ttytst source #Character generator 

我试图找到一种方法,通过Java API(而不是解析)或第三方库以编程方式从端口转换为服务名称?

伪代码:

 Port port = new Port("443","tcp"); String service = port.getService(); System.out.println(service); //prints "https" 

有没有什么好方法可以做到这一点?

您正在寻找的是Linux getservbyport()系统调用的Java实现。 看看http://github.com/wmeissner/jnr-netdb 。 另外,Google搜索java getservbyport

我不认为java中有一些API用于此目的。 您将需要解析此文件或以某种forms维护端口服务映射(属性文件,数据库等)。 从系统文件解析的示例是:

http://www.javafaq.nu/java-example-code-162.html

    Interesting Posts