我的服务文件(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"
有什么好方法可以做到这一点吗?
发布于 2010-08-03 04:20:32
您正在寻找的是Linux getservbyport()
系统调用的Java实现。看看http://github.com/wmeissner/jnr-netdb吧。另外,在谷歌上搜索java getservbyport
发布于 2010-08-03 03:16:11
我不认为java中有用于此目的的API。您需要解析此文件或以某种形式(属性文件、db等)维护端口服务映射。从系统文件解析的示例如下:
https://stackoverflow.com/questions/3393012
复制相似问题