手机访问网站获取外网IP
2015-12-28 22:15
639 查看
哈哈,这个说白了就是手机后台访问网站,再解析获得的数据
app: http://fir.im/dpxu 可以下载看看效果
书接上文:/article/7554146.html
android手机联网,所以开启一个异步任务执行后台程序
给一个网址,有get .post 方式连接网络,如果只是一个网址没多少数据,这俩是一样的,post 可以传的参数数据量多一些
给出两种方式联网的函数
我访问的是https://www.apnic.net/apnic-info/whois_search/your-ip
这个网页很奇怪,他的IP 我一直 获取不出来,只能得到IP的其他相关信息,而且网址也不是这个,我给出他的那个网址:
这只是我个人的获取,如果涉及到相关利益,我表示很抱歉,希望大家不要把这个网址商业使用
IP的获取淘宝有个貌似高大上的方式,就是极度不稳定:http://ip.taobao.com/service/getIpInfo2.php?ip=myip
之所以说看着”高大上“,是因为返回的是JSON串,需要用JSONObject解析,加上”貌似“是因为太不稳定啦
后台调用的代码:
无意中解析网站源码时发现这样一个网址:http://1212.ip138.com/ic.asp,同样的,这只是我个人的获取,只是我个人的测试使用,非商业,如果涉及到相关利益,我表示很抱歉,希望大家不要把这个网址商业使用
获取IP就极其简单啦
对了,异步任务处理完后
源码下载:http://download.csdn.net/detail/i_do_can/9381118
app: http://fir.im/dpxu 可以下载看看效果
书接上文:/article/7554146.html
android手机联网,所以开启一个异步任务执行后台程序
public class IpAddressInfo extends AsyncTask<String, Integer, StringBuffer>现在推荐的一种手机访问网络获取网页数据的方式是:URLConnection
给一个网址,有get .post 方式连接网络,如果只是一个网址没多少数据,这俩是一样的,post 可以传的参数数据量多一些
给出两种方式联网的函数
public void doGetURL(String url) throws Exception { URL localURL = new URL(url); URLConnection connection = localURL.openConnection(); HttpURLConnection httpURLConnection = (HttpURLConnection)connection; httpURLConnection.setRequestProperty("Accept-Charset", "utf-8"); httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); if (httpURLConnection.getResponseCode() >= 300) { throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode()); } inputStream = httpURLConnection.getInputStream(); inputStreamReader = new InputStreamReader(inputStream); reader = new BufferedReader(inputStreamReader); while ((tempLine = reader.readLine()) != null) { tempHTML.append(tempLine); } } private void doPostURL(String url) throws Exception{ URL localURL = new URL(url); URLConnection connection = localURL.openConnection(); HttpURLConnection httpURLConnection = (HttpURLConnection)connection; httpURLConnection.setDoOutput(true); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setRequestProperty("Accept-Charset", "utf-8"); httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); httpURLConnection.setRequestProperty("Content-Length", String.valueOf(url.length())); outputStream = httpURLConnection.getOutputStream(); outputStreamWriter = new OutputStreamWriter(outputStream); outputStreamWriter.write(url.toString()); outputStreamWriter.flush(); if (httpURLConnection.getResponseCode() >= 300) { throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode()); } inputStream = httpURLConnection.getInputStream(); inputStreamReader = new InputStreamReader(inputStream); reader = new BufferedReader(inputStreamReader); while ((tempLine = reader.readLine()) != null) { tempHTML.append(tempLine); } }
我访问的是https://www.apnic.net/apnic-info/whois_search/your-ip
这个网页很奇怪,他的IP 我一直 获取不出来,只能得到IP的其他相关信息,而且网址也不是这个,我给出他的那个网址:
这只是我个人的获取,如果涉及到相关利益,我表示很抱歉,希望大家不要把这个网址商业使用
IP的获取淘宝有个貌似高大上的方式,就是极度不稳定:http://ip.taobao.com/service/getIpInfo2.php?ip=myip
之所以说看着”高大上“,是因为返回的是JSON串,需要用JSONObject解析,加上”貌似“是因为太不稳定啦
后台调用的代码:
public static String GetNetIp2() throws Exception{ String IP = ""; String address = "http://ip.taobao.com/service/getIpInfo2.php?ip=myip"; URL url = new URL(address); HttpURLConnection connection = (HttpURLConnection) url .openConnection(); connection.setUseCaches(false); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream in = connection.getInputStream(); // 将流转化为字符串 BufferedReader reader = new BufferedReader( new InputStreamReader(in)); String tmpString = ""; StringBuilder retJSON = new StringBuilder(); while ((tmpString = reader.readLine()) != null) { retJSON.append(tmpString + "\n"); } JSONObject jsonObject = new JSONObject(retJSON.toString()); String code = jsonObject.getString("code"); if (code.equals("0")) { JSONObject data = jsonObject.getJSONObject("data"); IP = data.getString("ip") + "(" + data.getString("country") + data.getString("area") + "区" + data.getString("region") + data.getString("city") + data.getString("isp") + ")"; } else { IP = ""; } } else { IP = ""; } return IP; }
无意中解析网站源码时发现这样一个网址:http://1212.ip138.com/ic.asp,同样的,这只是我个人的获取,只是我个人的测试使用,非商业,如果涉及到相关利益,我表示很抱歉,希望大家不要把这个网址商业使用
获取IP就极其简单啦
<span style="white-space:pre"> </span>line = null; // 从反馈的结果中提取出IP地址 int start = strber.indexOf("["); int end = strber.indexOf("]" ); line =strber.substring(start + 1 ,end);
对了,异步任务处理完后
<span style="white-space:pre"> </span>/** * onPostExecute方法用于在执行完后台任务后更新UI,显示结果 EditText */ @Override protected void onPostExecute(StringBuffer result) { // 判断是否为null,若不为null,则在页面显示HTML代码 if (result != null) { <span style="white-space:pre"> </span>edtHTTP.setText(result); } super.onPostExecute(result); }OK ,基本完成啦
源码下载:http://download.csdn.net/detail/i_do_can/9381118
相关文章推荐
- Hadoop分布式文件系统:架构和设计要点
- Hive 体系架构
- Android应用架构
- 《近匠》Worktile王涛:典型MEAN架构下的团队协作工具
- Android WiFi--系统架构
- CPU与内存互联的架构演变
- google 指定网站,关键字大小写结果竟然完全不同
- 理解RESTful架构[转]
- 电商网站模板
- VMware集群常见硬件配置、架构说明
- 分布式架构详解
- touchweb手机网站图片加载方法(canvas加载和延迟加载)
- 关于.net MVC5+EF6 网站部署的问题
- ECMALL网站验证码不显示
- 架构设计类
- 集群NAS技术架构
- 学习opengl十大网站(转载)
- 利用StatusPage免费开源程序自建网站/主机监控列表过程
- 利用StatusPage免费开源程序自建网站/主机监控列表过程
- 三俗网站必备之动态广告