参考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 interfaces = NetworkInterface.getNetworkInterfaces();

if (interfaces != null) {

while (interfaces.hasMoreElements()) {

try {

NetworkInterface network = interfaces.nextElement();

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

}

posted @ 2015-03-02 06:29 leekiang 阅读(505) | 评论 (0) | 编辑 收藏

玻利维亚java_BlogJava相关推荐

  1. Python使用Turtle画玻利维亚国旗

    多民族玻利维亚国(Plurinational State of Bolivia),简称玻利维亚,是位于南美洲中部的内陆国家,周边与巴西.秘鲁.智利.阿根廷.巴拉圭五国相邻,法定首都为苏克雷, 实际政府 ...

  2. 《任正非:我若贪生怕死,何来让你们英勇奋斗》

    非常高兴尼泊尔代表处的进步,你们的一个历史项目概算亏损,从大前年亏损2.7亿美金,到前年亏损3000万美金,到去年盈利2140万美金.在喜马拉雅南麓一路爬坡,辛苦了.听说去年你们都涨了工资,我十分高兴 ...

  3. [转]MCC(移动国家码)和 MNC(移动网络码)

    From : http://blog.chinaunix.net/uid-20484604-id-1941290.html     国际移动用户识别码(IMSI) international mobi ...

  4. 区域设置 ID (LCID) 表, 及获取方法

    区域设置 ID (LCID) 表, 及获取方法 中国的区域设置 ID 是 2052, 如果经常打开微软软件的安装目录应该经常见到. 获取很简单, 有现成的 API 函数: GetThreadLocal ...

  5. 22岁复旦大学生拿下深度学习挑战赛冠军:明明可以靠脸吃饭,却偏偏要靠才华

    复旦大学Hengduo Li 编译 | AI科技大本营 参与 | 尚岩奇.周翔 近日,人工智能行车记录仪应用公司 Nexar 公布了第二届挑战赛的结果,其中,来自复旦大学的 22 岁的本科生 Heng ...

  6. 华为,你终于活成了他们害怕的样子

    微信改版,加星标不迷路! 作者 | 素衣回中原 来源 | HUGO(ID:microhugo) 今天这篇文章是叔想为中国一家企业一个品牌好好说几句话,前几日华为的事你们都知道了吧,华为公司的负责人(任 ...

  7. 人类吃屎用屎指南:用做肥料不如制咖啡、当展品、做炸弹

    公元前一万年,大概一亿人生存在地球上,他们产生的5500万公斤人类粪便分散在世界各地,缓慢地喂食其他生物.或者说,被其他生物利用. 到了2013年,地球上有70亿人口,人类的排泄物总产量接近4000亿 ...

  8. 平行进化论再添证据 牙形刺远隔千里却发育模式相同

    来源:科技日报 记者:聂翠蓉 平行进化观点认为,具有共同祖先的有机体即使彼此被分隔在相距千里的不同地域,也会以同样的方式进化.据物理学家组织网11月23日报道,德国爱尔兰根-纽伦堡大学和加拿大卡尔加里 ...

  9. 人工智能的下一个道德挑战:如何对待动物

    来源:爱范儿 去年 11 月份,一段关于母熊和它幼崽的视频在网络上传播开来.根据画面中显示,在一片被白雪覆盖的陡峭斜坡上,一头雌性棕熊正带着它的幼崽艰难的攀爬.虽然因为陡峭的坡度和积雪导致小熊一直在打 ...

最新文章

  1. Android数据持久化:SharePreference
  2. java 有没有类似于 requests 爬虫_大数据时代,怎么能不了解“爬虫”是什么?
  3. innodb主键的长度为什么不能大于767字节
  4. python 读取二进制文件 转为16进制输出
  5. 怎样评价推荐系统的结果质量?
  6. Java中数组的定义,怎么发现那个方括号放在变量名前或者后都是正确的?
  7. Codeforces 988F. Rain and Umbrellas
  8. mybatis配置全局变量
  9. 用laravel dingo api插件库创建api的一些心得笔记
  10. Google 亚马逊又双叒叕打架了!用户:我只想安静地用产品
  11. java属性定义_Kotlin 真香系列:扩展函数和属性
  12. 利用GDB、KGDB调试应用程序及内核驱动模块
  13. linux下c语言按q退出_解析Linux环境下RAID 6的Q校验算法
  14. delphi xe android 黑屏,Delphi XE之路(3)解决启动时短暂的黑屏
  15. 【进击全栈 2,毕向东Java教程百度云
  16. 控制算法简析3——LKA中PID控制的error选取
  17. Ubuntu 20.04 桌面美化
  18. 哪些数码好物值得在开学季入手,推荐几款数码好物
  19. 淘宝一月上钻是这样操作的
  20. 关不掉,新版微信这功能引用户怨声载道...

热门文章

  1. 系统SDK介绍-02
  2. 为增进理解力而奋斗终身
  3. HBASE强制删除表
  4. Swift 面向对象
  5. 关于 typedef typedef struct typedef union理解 --写给不长脑子的我
  6. Linux Crontab 定时任务 命令详解
  7. WINRAR 命令行语法
  8. 10行Python代码自动清理电脑内重复文件,释放双手!
  9. php mysql两个表合并_php – 我可以将两个MySQL查询合并为一个吗?
  10. txt 乱码_STATA数据导入——将TXT、EXCEL、SAS、SPSS数据/批量导入STATA