java获取外网ip地址
转自:http://blog.163.com/houjunchang_daxue/blog/static/13037938320134543310451/
/**
* 获取外网IP、归属地、操作系统
* @return
*/
public static String[] getIp(){
String[] obj = new String[3];
StringBuffer strForeignIP = new StringBuffer("");
StringBuffer strLocation = new StringBuffer("");
StringBuffer strOperatorMessageation = new StringBuffer("");
String ipAddress = "";
String ipLocation = "";
String ipSystem = "";
StringBuffer strUrl =new StringBuffer("http://www.cz88.net/ip/viewip778.aspx");
try{
URL url = new URL(strUrl.toString());
URLConnection context = url.openConnection();
InputStream in = context.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in, "gb2312"));//防止读出来的是乱码
String s = "";
StringBuffer sb = new StringBuffer("");
while ((s = br.readLine()) != null) {
sb.append(s + "\r\n");
}
br.close();
String webContent = sb.toString();
if (null!=webContent && webContent.trim().length()>0){
String flagofForeignIPString = "IPMessage";
int startIP = webContent.indexOf(flagofForeignIPString) + flagofForeignIPString.length() + 2;
int endIP = webContent.indexOf("</span>", startIP);
strForeignIP.delete(0, webContent.length());
strForeignIP.append(webContent.substring(startIP, endIP));
String flagofLocationString = "AddrMessage";
int startLoc = webContent.indexOf(flagofLocationString)+ flagofLocationString.length() + 2;
int endLoc = webContent.indexOf("</span>", startLoc);
strLocation.delete(0, webContent.length());
strLocation.append(webContent.substring(startLoc, endLoc));
String flagoOperatorMessage = "OperatorMessage";
int startOpera = webContent.indexOf(flagoOperatorMessage)+ flagoOperatorMessage.length() + 2;
int endOpera = webContent.indexOf("</span>", startOpera);
strOperatorMessageation.delete(0, webContent.length());
strOperatorMessageation.append(webContent.substring(startOpera, endOpera));
}
}catch(Exception e){
System.out.println("IpUtil:get ip is failed:"+e.getMessage());
e.printStackTrace();
}
if(strForeignIP.toString().trim().length()<0){
ipAddress = "未知";
}else{
ipAddress = strForeignIP.toString();
}
if(strForeignIP.toString().trim().length()<0){
ipLocation = "未知";
}else{
ipLocation = strLocation.toString();
}
if(strForeignIP.toString().trim().length()<0){
ipSystem = "未知";
}else{
ipSystem = strOperatorMessageation.toString();
}
obj[0]=ipAddress;
obj[1]=ipLocation;
obj[2]=ipSystem;
return obj;
}
java获取外网ip地址的更多相关文章
- c#获取外网IP地址的方法
1.如果你是通过路由上网的,可以通过访问ip138之类的地址来获取外网IP 2.如果是通过PPPOE拨号上网的,可以使用以下代码获取IP //获取宽带连接(PPPOE拨号)的IP地址,timeout超 ...
- C# 获取外网IP地址
很多情况下我们需要获取外网的IP地址,一般用自带的方法获取到的都是不准确,往往获取到的是内网的IP地址,所以需要采用外部网站接口来获取. 代码 通过访问第三方接口来获取真实的ip地址 public s ...
- MFC C++ 获取外网IP地址
#include <afxinet.h> //GB2312 转换成 Unicode wchar_t* GB2312ToUnicode(const char* szGBString) { U ...
- linux 获取外网ip地址
curl ifconfig.me 私有ip地址,获取公网ip
- android 根据网络来获取外网ip地址及国家,地区的接口
新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪多地域测试方法:http://int.dpool. ...
- C# Winform程序获取外网IP地址
string strUrl = "http://www.ip138.com/ip2city.asp"; //获得IP的网址了 Uri uri = new Uri(strUrl); ...
- 获取外网IP地址
public static string GetRealIP(){ string result = String.Empty; result = HttpC ...
- C#获取外网IP地址;C#获取所在IP城市地址
public static string GetIP() { using (var webClient = new WebClient()) ...
- C#获取外网IP、本机MAC地址及Ping的实现
原文 获取外网IP, C#获取本机的MAC地址,C#通过编程方式实现Ping 获取外网IP地址 思路是通过WebRequest连接一些网上提供IP查询服务的网站,下载到含有你的IP的网页,然后用正则表 ...
随机推荐
- pymysql 使用
适用环境 python版本 >=2.6或3.3 mysql版本>=4.1 安装 可以使用pip安装也可以手动下载安装. 使用pip安装,在命令行执行如下命令: 1 pip install ...
- C语言源代码——计算任何一天是星期几
代码写的不严谨. 网上也有很多计算任何一天是星期几的C语言源代码,不过,有些代码含有一点点小错误.像闰年的分辨啊,或者是每个月的天数,再或者星期的计算公式,都是比较细微的环节,出一点错误都有可能导致结 ...
- 联想 Z470个人安装黑苹果参考
笔记本是联想 Z470,cpu i3-2350M 傻瓜图文式]Win系统下制作U盘CLOVER引导 EDIT部分 进去黑屏 U盘引导盘
- 第五章 Odoo 12开发之导入、导出以及模块数据
大多数Odoo 模块的定义,如用户界面和安全规则,实际是存储在对应数据表中的数据记录.模块中的 XML 和 CSV 文件不是 Odoo 应用运行时使用,而是载入数据表的手段.正是因为这个原因,Odoo ...
- BZOJ 2683: 简单题(CDQ 分治)
题面 Time Limit: 50 Sec Memory Limit: 128 MB Description 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: ...
- 微信小程序多商品评价评星提交
<form bindsubmit="submitComment"> <block wx:for="{{commentList}}" wx:ke ...
- 大牛就别进来了.npm --save-dev --save 的区别
--save-dev 是你开发时候依赖的东西,--save 是你发布之后还依赖的东西. 比如,你写 ES6 代码,如果你想编译成 ES5 发布那么 babel 就是devDependencies.如果 ...
- JS的第七种语言类型--symbol
今天浏览网页的时候发现,JS中有七种语言类型.我的内心???百度一下哪里来的第七种!! 好吧跟着来回顾一下JS的前6种undefined null boolean string numver obje ...
- 分享非常漂亮的WPF界面框架源码及插件化实现原理
在上文<分享一个非常漂亮的WPF界面框架>中我简单的介绍了一个界面框架,有朋友已经指出了,这个界面框架是基于ModernUI来实现的,在该文我将分享所有的源码,并详细描述如何基于Mod ...
- 软件-浏览器-GoogleChrome:Google Chrome
ylbtech-软件-浏览器-GoogleChrome:Google Chrome Google Chrome是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit, ...