1. package org.jr.net;
  2. /**
  3. * Copyright: Copyright (c) 2002-2004
  4. * Company: JavaResearch(http://www.javaresearch.org)
  5. * 最后更新日期:2003年3月4日
  6. * @author Cherami
  7. */
  8. import java.net.*;
  9. /**
  10. * IP地址相关的工具类,封装常用的IP工具方法。
  11. * @since 0.12
  12. */
  13. public class IPUtil {
  14. /**
  15. * 非法IP地址常量。
  16. * @since 0.12
  17. */
  18. public static final String INVALID_IP = "0.0.0.0";
  19. /**
  20. * 未知主机名常量。
  21. * @since 0.12
  22. */
  23. public static final String UNKNOWN_HOST = "";
  24. /**
  25. * 私有构造方法,防止类的实例化,因为工具类不需要实例化。
  26. */
  27. private IPUtil() {
  28. }
  29. /**
  30. * 根据主机名得到IP地址字符串。
  31. * @param hostName 要查找地址的主机名
  32. * @return 对应主机的IP地址,主机名未知或者非法时返回INVALID_IP。
  33. * @since 0.12
  34. */
  35. public static String getByName(String hostName) {
  36. try {
  37. InetAddress inet = InetAddress.getByName(hostName);
  38. return inet.getHostAddress();
  39. }
  40. catch (UnknownHostException e) {
  41. return INVALID_IP;
  42. }
  43. }
  44. /**
  45. * 根据IP地址得到主机名。
  46. * @param ip 要查找主界面的IP地址
  47. * @return 对应IP的主机名,IP地址未知时返回UNKNOWN_HOST,IP地址未知也可能是网络问题造成的。
  48. * @since 0.12
  49. */
  50. public static String getHostName(String ip) {
  51. try {
  52. InetAddress inet = InetAddress.getByName(ip);
  53. return inet.getHostName();
  54. }
  55. catch (UnknownHostException e) {
  56. return UNKNOWN_HOST;
  57. }
  58. }
  59. }