项目组最近添加新需求,要获取客户端和服务端IP,削微研究了一下,总结如下:
1、获取客户端外网IP(为啥不要内网,因为那玩意没鸟用,外网IP起码能确定客户端的地区位置)
目前只有一种方法可以获取:发送http请求到一个专门搞IP解析的url,通过返回的值解析出IP。这类url市面上不少,哥试了8种,没错,就是百度前三页上面所有涉及的url,响应最快返回值废话最少的是:http://ip.taobao.com/service/getIpInfo2.php?ip=myip。这里谢谢无私伟大的淘宝,希望坚持下去。
主要代码如下:
URL url = new URL("http://ip.taobao.com/service/getIpInfo2.php?ip=myip");HttpURLConnection conn = (HttpURLConnection) url.openConnection();int responseCode = conn.getResponseCode();if (responseCode == HttpURLConnection.HTTP_OK) {InputStream is = conn.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));StringBuffer sb = new StringBuffer();String str;while ((str = br.readLine()) != null) {sb.append(str);}JSONObject obj = new JSONObject(sb.toString());String data = obj.getString("data");JSONObject dataObj = new JSONObject(data);String ip = dataObj.getString("ip");br.close();is.close();return ip;}
2、获取服务端IP
这个获取的方法主要是通过域名来解析,主要代码如下:
String name = "www.baidu.com";InetAddress[] addresses = new InetAddress[0];try {addresses = InetAddress.getAllByName(name);} catch (UnknownHostException e) {e.printStackTrace();}for (int i = 0; i < addresses.length; i++) {sb.append(name + "[" + i + "]: "+ addresses[i].getHostAddress());}
其实有这种需求的通常是做第三方sdk的,比如哥这种项目,所以最好是上面的功能都在sdk里面自己搞定,不用客户端再调个接口传个域名啥的,否则削微会影响一点体验(哥是不是考虑的有点多?)。那要怎么获取客户端代码里面的域名了,听说可以用代码注入搞定,好吧,又有得研究了。

Android 获取客户端外网IP和服务端IP相关推荐

  1. 获取客户端外网IP,省份,城市,运营商

    /// <summary>     /// 获取客户端外网IP,省份,城市,运营商     /// 2012年12月18日 15:07     /// </summary>   ...

  2. Android 获取本地外网IP、内网IP、计算机名等信息

    一.获取本地外网IP public static String GetNetIp() { URL infoUrl = null; InputStream inStream = null; try { ...

  3. Android 获取局域网内网IP地址

    Android 获取局域网内网IP地址 废话 上代码 完事 废话 拿局域网IP一般用在tcp通讯或udp通讯上,下次再整理下这类通讯的框架 上代码 /*** 网络工具* 获得局域网IP地址* @aut ...

  4. Golang 获取当前外网IP/地址/运营商

    Golang 获取当前外网IP/地址/运营商 - Go语言中文网 - Golang中文社区 package mainimport ("fmt""io/ioutil&quo ...

  5. 内网和外网的区别+tcp协议ip协议详解

    内网概念 即所说的局域网,比如学校的局域网,局域网内每台计算机的IP地址在本局域网内具有互异性,是不可重复的.但两个局域网内的内网IP可以有相同的. (连上WIFI,手机IP一般能在「设置」-「关于手 ...

  6. 万象2004修改服务器IP,win10系统运行万象网管2004服务端提示”类型转换错误”的图文办...

    现如今,几乎家家户户都有一台电脑,当我们操作win10系统的过程中常常会碰到win10系统运行万象网管2004服务端提示"类型转换错误"的问题,有什么好的办法去解决win10系统运 ...

  7. 阿里云使用js 实现OSS图片上传、获取OSS图片列表、获取图片外网访问地址(读写权限私有、读写权限公共);...

    详情请参考:https://help.aliyun.com/document_detail/32069.html?spm=a2c4g.11186623.6.763.ZgC59a 或者https://h ...

  8. Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)

    Android获取设备各项信息(设备id.ip地址.APP应用名称.设备名称.运行商.品牌.型号.分辨率.处理器.国家码.系统语言.网络类型.oaid.android版本.操作系统版本.mac地址.应 ...

  9. 糗事百科 android源码,Android高仿糗事百科(含服务端)

    Android高仿糗事百科(含服务端) 积分: 23 智慧币 积分: 3 智慧币 [1.00元 ] 包含内容: 源码,全套工具 详情描述 如遇视频不清晰,请最大化观看演示 以下仅列出部分功能,全部功能 ...

最新文章

  1. 单链表 操作的18种算法
  2. 捕获SocketConnection组件连接异常的几个好贴
  3. 小米大数据:借助Apache Kylin打造高效、易用的一站式OLAP解决方案
  4. Ext JS - Combobox 加载下拉框数据 级联下拉框
  5. 程序人生:教你写出让同事抓狂的代码
  6. ActiveMQ与spring整合
  7. Spring 定时任务的几种实现
  8. 素数路(prime)
  9. findstr()与strfind()的区别
  10. 蓝桥杯 ALGO-46 算法训练 Hanoi问题
  11. 出现java.sql.SQLException: No suitable driver的几种解决办法
  12. 中电信推大学生3G上网套餐
  13. Java内存模型基础知识
  14. jsp写的简单购书网站
  15. 个人博客logo如何设计?案例合集参考
  16. read/write 阻塞/非阻塞
  17. php 检测英文字符,php正则验证中英文字符串 - 小俊学习网
  18. maplesim matlab,maple
  19. DCT变换及matlab实现
  20. 【ASP.Net】上传图片+水印

热门文章

  1. C语言中判断回文数用数组的方法,【C语言】回文数和回文字符串的判断
  2. VC中实现历史记录的全面清除
  3. 最优风险资产组合-Python
  4. 【WPS】超链接跳转至文档内图片;点击超链接即可跳转设置
  5. html5开发游戏的建议
  6. 终于有人能把 服务器 说的这么直白了
  7. 按键精灵脚本简单介绍
  8. Linux鼠标变成十字,点击不动
  9. JavaScript 中常见排序算法详解
  10. IDEA-配置项说明