我的服务文件(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"
有没有什么好办法可以做到这一点?
答案 0 :(得分:2)
您正在寻找的是Linux getservbyport()
系统调用的Java实现。看看http://github.com/wmeissner/jnr-netdb。另外,Google搜索java getservbyport
答案 1 :(得分:0)
我不认为java中有一些API用于此目的。 您将需要解析此文件或以某种形式维护端口服务映射(属性文件,数据库等)。 从系统文件解析的例子是: