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

          如何用 Java 獲取系統 IP?

          Posted on 2015-03-02 06:29 leekiang 閱讀(665) 評論(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}$");
          }

          主站蜘蛛池模板: 响水县| 刚察县| 卢氏县| 平昌县| 即墨市| 沁水县| 汕尾市| 宿迁市| 乡城县| 辛集市| 涞源县| 长春市| 阜南县| 休宁县| 临武县| 理塘县| 广元市| 镇康县| 陆丰市| 从江县| 定边县| 聂荣县| 汉寿县| 武汉市| 永泰县| 龙江县| 北川| 咸宁市| 安阳市| 汽车| 万盛区| 鄂托克旗| 墨玉县| 湘潭市| 崇文区| 太湖县| 汕头市| 湘西| 游戏| 黑河市| 福建省|