MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          如何用 Java 獲取系統 IP?

          Posted on 2015-03-02 06:29 leekiang 閱讀(672) 評論(0)  編輯  收藏 所屬分類: java
          參考dubbo里的NetUtils類

          import java.net.InetAddress;
          import java.net.NetworkInterface;
          import java.util.Enumeration;
          import java.util.regex.Pattern;

          public class GetIP {
          public static void main(String[] args) {
          System.out.println(GetIP.getLocalAddress0().getHostAddress());
          }
          public static InetAddress getLocalAddress0() {
          ??????? InetAddress localAddress = null;
          ??????? try {
          ??????????? localAddress = InetAddress.getLocalHost();
          ??????????? if (isValidAddress(localAddress)) {
          ??????????????? return localAddress;
          ??????????? }
          ??????? } catch (Throwable e) {
          ??????????? System.out.println("Failed to retriving ip address, " + e.getMessage());
          ??????? }
          ??????? try {
          ??????????? Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
          ??????????? if (interfaces != null) {
          ??????????????? while (interfaces.hasMoreElements()) {
          ??????????????????? try {
          ??????????????????????? NetworkInterface network = interfaces.nextElement();
          ??????????????????????? Enumeration<InetAddress> addresses = network.getInetAddresses();
          ??????????????????????? if (addresses != null) {
          ??????????????????????????? while (addresses.hasMoreElements()) {
          ??????????????????????????????? try {
          ??????????????????????????????????? InetAddress address = addresses.nextElement();
          ??????????????????????????????????? if (isValidAddress(address)) {
          ??????????????????????????????????????? return address;
          ??????????????????????????????????? }
          ??????????????????????????????? } catch (Throwable e) {
          ??????????????????????????????????? System.out.println("Failed to retriving ip address, " + e.getMessage());
          ??????????????????????????????? }
          ??????????????????????????? }
          ??????????????????????? }
          ??????????????????? } catch (Throwable e) {
          ??????????????????????? System.out.println("Failed to retriving ip address, " + e.getMessage());
          ??????????????????? }
          ??????????????? }
          ??????????? }
          ??????? } catch (Throwable e) {
          ??????????? System.out.println("Failed to retriving ip address, " + e.getMessage());
          ??????? }
          ??????? System.out.println("Could not get local host ip address, will use 127.0.0.1 instead.");
          ??????? return localAddress;
          ??? }
          ??? private static boolean isValidAddress(InetAddress address) {
          ??????? if (address == null || address.isLoopbackAddress())
          ??????????? return false;
          ??????? String name = address.getHostAddress();
          ??????? return (name != null
          ??????????????? && ! ANYHOST.equals(name)
          ??????????????? && ! LOCALHOST.equals(name)
          ??????????????? && IP_PATTERN.matcher(name).matches());
          ??? }
          ?? ?
          ??? public static final String LOCALHOST = "127.0.0.1";

          ??? public static final String ANYHOST = "0.0.0.0";
          ?? ?
          ??? private static final Pattern IP_PATTERN = Pattern.compile("\\d{1,3}(\\.\\d{1,3}){3,5}$");
          }

          主站蜘蛛池模板: 德阳市| 泸州市| 无极县| 新野县| 怀宁县| 子洲县| 塔河县| 高淳县| 中山市| 双峰县| 庆阳市| 甘肃省| 留坝县| 射洪县| 呈贡县| 应用必备| 乌拉特后旗| 邵阳县| 浦县| 新乡市| 三门峡市| 绥芬河市| 太保市| 福贡县| 鱼台县| 徐水县| 古浪县| 平阴县| 专栏| 临邑县| 清水河县| 临高县| 武强县| 武冈市| 图木舒克市| 泰宁县| 万安县| 孝感市| 桂阳县| 四川省| 甘洛县|