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}$");
          }

          主站蜘蛛池模板: 镶黄旗| 黎城县| 黑龙江省| 格尔木市| 鸡东县| 海林市| 贵南县| 榆社县| 贺州市| 论坛| 射洪县| 临夏市| 佛坪县| 西城区| 锡林郭勒盟| 磴口县| 本溪市| 虹口区| 海城市| 左云县| 前郭尔| 陇西县| 崇阳县| 余干县| 延庆县| 宾阳县| 宝丰县| 定兴县| 凤山市| 凤山县| 多伦县| 团风县| 报价| 海丰县| 溧阳市| 宜阳县| 长寿区| 扎囊县| 沿河| 锡林郭勒盟| 全州县|