我正在实现与套接字的TCP连接,我需要获取服务器端的客户端套接字的IP。我已经使用socketName.getRemoteSocketAddress()
这确实返回IP地址后面跟着我使用的端口ID!我怎样才能得到地址而不是端口?客户端套接字 - 获取IP -java
4
A
回答
4
这个返回的SocketAddress
实际上是一个protocol-dependent subclass。对于网络协议,如TCP在你的情况,你可以将其转换为InetSocketAddress
:
InetSocketAddress sockaddr = (InetSocketAddress)socketName.getRemoteSocketAddress();
然后你可以使用的InetSocketAddress
的方法来得到你需要的信息,例如:
InetAddress inaddr = sockaddr.getAddress();
然后,您可以根据地址类型将其转换为Inet4Address
或Inet6Address
(如果您不知道,请使用instanceof
查找),例如如果你知道它是IPv4的:
Inet4Address in4addr = (Inet4Address)inaddr;
byte[] ip4bytes = in4addr.getAddress(); // returns byte[4]
String ip4string = in4addr.toString();
或者,更强劲的例子:
SocketAddress socketAddress = socketName.getRemoteSocketAddress();
if (socketAddress instanceof InetSocketAddress) {
InetAddress inetAddress = ((InetSocketAddress)socketAddress).getAddress();
if (inetAddress instanceof Inet4Address)
System.out.println("IPv4: " + inetAddress);
else if (inetAddress instanceof Inet6Address)
System.out.println("IPv6: " + inetAddress);
else
System.err.println("Not an IP address.");
} else {
System.err.println("Not an internet protocol socket.");
}
0
((InetSocketAddress)socketName).getAddress().toString()
将返回类似:/10.255.34.132
包含主机名,你可以,如果你不试试这个不想要主机名:
((InetSocketAddress)socketName).getAddress().toString().split("/")[1]
相关问题
- 1. ServerSocket +客户端套接字 - 如何获取客户端的IP地址?
- 2. 如何在Lua套接字中获取客户端IP
- 3. 如何使用套接字编程获取客户端IP#
- 4. 无法通过套接字服务器获取客户端IP
- 5. 如何获取Tornado Web套接字请求的客户端IP?
- 6. Java套接字客户端/服务器
- 7. java套接字客户端单连接
- 8. 获取客户端IP的客户端
- 9. Node.js:获取客户端IP
- 10. DARTlang获取客户端IP
- 11. 使用套接字io java客户端的套接字io客户端
- 12. Java多客户端服务器套接字获取错误
- 13. 如何从Java中的套接字获取客户端名称?
- 14. C套接字服务器,Java套接字客户端:阻塞!
- 15. 套接字java客户端服务器
- 16. Java上的客户端套接字
- 17. Java客户端SSL套接字unknown_ca
- 18. JAVA套接字客户端到客户端通信
- 19. java中的客户端/套接字 - 客户端错误
- 20. 套接字编程客户端名称
- 21. Asyncrhonous套接字客户端
- 22. lua套接字客户端
- 23. Python套接字客户端到Java套接字服务器
- 24. 将java套接字客户端移植到HTML5套接字
- 25. 如何在带有套接字的Java,TCP/IP服务器/客户端模型中获取远程IP地址?
- 26. 如何获取用户的套接字客户端?
- 27. PHP获取所有连接的客户端套接字
- 28. 可靠地获取Web客户端IP
- 29. tcp从edittext获取客户端的ip
- 30. 无法连接Java套接字服务器和客户端
只需使用您的第一条提示(编辑前)即可完美工作。谢谢! – Rakim