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的网页,然后用正则表 ...
随机推荐
- ubuntu关闭防火墙(默认命令)
- @Restcontroller与@controller区别
@RestController注解相当于@ResponseBody + @Controller合在一起的作用. 1)如果只是使用@RestController注解Controller,则Control ...
- Python开发利器Pycharm
可以新建项目的时候,在下面的小扳手那里创建虚拟化环境.若想安装包,直接file->setting里面找到对应项目,然后添加新的包即可. 视频地址:http://edu.51cto.com/c ...
- 威胁快报|Solr dataimport成挖矿团伙新型利用方式
概述 近日,阿里云安全团队监测到挖矿团伙利用solr dataimport RCE(CVE-2019-0193)作为新的攻击方式对云上主机进行攻击,攻击成功后下载门罗币挖矿程序进行牟利.该团伙使用的恶 ...
- 页面跳转不带 referrer的方法
如果页面中包含了如下 meta 标签,所有从当前页面中发起的请求将不会携带 referer: <meta name="referrer" content="neve ...
- redis教程(三)-----redis缓存雪崩、缓存穿透、缓存预热
缓存雪崩 概念 缓存雪崩是由于原有缓存失效(过期),新缓存未到期间.所有请求都去查询数据库,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机.从而形成一系列连锁反应,造成整个系统崩溃. 解决 ...
- python intern(字符串驻留机制)
python 中为了提高字符串的使用用效率和节约内存,对于由 字母.数字.下划线组成的标识符采用了 intern 机制,即对于短字符串,将其赋值给多个对象时,内存中只有一个副本,多个对象共享这个副本. ...
- storm的安装
一. 安装storm要先本机搭建好zookeeper集群(手动目录安装或者CDH安装) 二. Java 6 Python 2.6.6 unzip(针对使用语言要安装好相应环境 比如java 要JDK和 ...
- Luogu P1730 最小密度路径(最短路径+dp)
P1730 最小密度路径 题面 题目描述 给出一张有 \(N\) 个点 \(M\) 条边的加权有向无环图,接下来有 \(Q\) 个询问,每个询问包括 \(2\) 个节点 \(X\) 和 \(Y\) , ...
- Leetcode144. Binary Tree Preorder Traversal二叉树的前序遍历
给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 递归: class S ...