Rest Pcap4j:获取具有IPv6地址的客户端MAC地址

Rest Pcap4j:获取具有IPv6地址的客户端MAC地址,rest,pcap4j,Rest,Pcap4j,我正在尝试使用数据包捕获(pcap4j)获取客户端的MAC地址。我已尝试通过MacAddress.getByName(IP\U地址)为MacAddress创建对象,其中IP\U地址取自HttpServletRequest.getRemoteAddress() 示例代码 private void bar(HttpServletRequest request) { InetAddress addr = InetAddress.getByName(request.getRemoteHo

我正在尝试使用数据包捕获(pcap4j)获取客户端的MAC地址。我已尝试通过
MacAddress.getByName(IP\U地址)
MacAddress创建对象,其中
IP\U地址
取自
HttpServletRequest.getRemoteAddress()

示例代码

private void bar(HttpServletRequest request) {
        InetAddress addr = InetAddress.getByName(request.getRemoteHost());
        MacAddress address = MacAddress.getByName(addr.getHostName());
        // TODO: Do something with MacAddress object to get MAC Address
    }
现在问题来了:

我已经在本地主机上测试了这一点,并且
请求。getRemoteHost()
addr.getHostName()
都返回了ipv6环回地址。因此无法创建MacAddress对象stacktrace:

java.lang.IllegalArgumentException: invalid hex string(localhost), not match pattern(\A[0-9a-fA-F][0-9a-fA-F](\Ql\E[0-9a-fA-F][0-9a-fA-F])*\z)
    at org.pcap4j.util.ByteArrays.parseByteArray(ByteArrays.java:914)
    at org.pcap4j.util.MacAddress.getByName(MacAddress.java:64)
    at org.pcap4j.util.MacAddress.getByName(MacAddress.java:55)
    at com.xxxxx.MacController.bar(MacController.java:121)
    at com.xxxxx.MacController.getMac(MacController.java:110)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
我如何确保它同时适用于ipv4和ipv6,因为我不确定客户端的地址方案是什么。我计划在RESTful web服务中使用它