Java中的端口到服务名称?

时间:2010-08-03 01:28:18

标签: java service ip-address ports hosts

我的服务文件(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"

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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