Android想要获取公网IP地址,连接wifi的情况下在应用层开发的角度使用系统的API是做不到的,只能直接或间接利用第三方的接口服务:
1、公共接口:

搜狐:

http://pv.sohu.com/cityjson

返回格式:

var returnCitySN = {"cip": "XXXX", "cid": "XXX", "cname": "XX省XX市"};

淘宝(不稳定,经常访问不了):

http://ip.taobao.com/service/getIpInfo2.php?ip=myip

注意:淘宝的接口在请求时需要添加 “User-Agent” : “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36 Edg/80.0.361.109”,因为淘宝的这个接口只能用于PC浏览器访问,所以需要添加该标识让服务器认为这个请求是PC浏览器发起的。

返回格式:

{"code":0,"data":{"ip":"XXXXXX","country":"中国","area":"","region":"XX","city":"XX","county":"XX","isp":"XX","country_id":"CN","area_id":"","region_id":"XXX","city_id":"XXX","county_id":"xx","isp_id":"XXX"}}

在APP中调用接口,然后手动解析出IP地址,另外这两个接口都是http请求,在高版本系统上会出现请求失败,是因为从Android 9.0开始默认禁止了http请求,可以通过清单文件添加配置解决:

文件名随便起,文件内配置如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config><base-config cleartextTrafficPermitted="true" />
</network-security-config>

优点:无需接入门槛即可使用。
缺点:不稳定,接口不可用或者有改动,会发生异常。

2、各个地图服务API,比如:腾讯位置服务、百度地图、高德地图等等,需要到各平台注册成为开发者后才能使用API,并且还可能存在调用次数的限制。

所以建议采用多种策略进行获取。

Android获取公网IP地址相关推荐

  1. android获取公网ip地址,获取公网ip

    /** * 获取公网ip * @return */ public String getNetIp() { String ip = ""; InputStream inStream ...

  2. 一种获取公网ip地址并发送邮件至指定邮箱的实现方法

    背景   在之前一篇文章中介绍了利用路由器的端口映射功能实现内网穿透的方法.   ubuntu SSH内网穿透 + Vscode远程访问   在实际的使用过程中,发现这一实现途径存在一些不足之处,即当 ...

  3. SRT编码器传输获取公网IP地址3种解决方案

    SRT是时下最热门的互联网传输协议,具备低延时.稳定可靠传输的优势特性,可广泛应用于远程制作.远程监看.异地互动等需要互联网远程传输场景. SRT 是点对点传输协议,由于需要穿透互联网,所以至少需要有 ...

  4. java 获取ip地址 公网,java获取公网ip地址操作

    获取公网ip地址操作 import javax.servlet.http.HttpServletRequest; /** * * 获取公网ip地址操作 * @ClassNmae:NewClass * ...

  5. linux系统wget、curl终端命令行获取公网ip地址及其他网络信息

    前言 在linux开发环境中查看当前公网ip地址或者某个端口是否通,对于新手来说是个比较麻烦的事情,下面我这里介绍一下如何在终端查询当前公网ip以及其他网络信息. 安装wget.curl工具 wget ...

  6. android公网ip,android 获取公网ip 内网ip

    /** * 获取公网ip * @return */ public String getNetIp() { URL infoUrl = null; InputStream inStream = null ...

  7. android获取网卡ip地址吗,Native.js获取android有线网络IP地址

    刚上手Native.js 请教问题如下: 想通过Native.js 获取Android有线网络IP地址,提示这一行console.log(en.hasMoreElements());报错: Uncau ...

  8. 你会在终端下快速获取公网 IP 地址吗,学会这些技巧后你就游刃有余了!

    在排除网络问题,建立新连接或配置防火墙时,了解设备的 IP 地址很重要. IP 地址可以分为两类,公用和私有(专用).公用 IP 是唯一的 IP 地址,可以从 Internet 访问.专用 IP 地址 ...

  9. android 获取dns地址吗,Android: 获取dns IP地址

    在Android系统中,想获取dns server的IP地址并不是一件容易的事,在bionic中,有关于获取dns IP地址的相关代码,但是你在native代码中却不能接调用相关的函数获取. 如在bi ...

最新文章

  1. matlab用于系统框图建模的函数,MATLAB产品家族中文
  2. 此blog已经迁移~~~
  3. JAVA用JComboBox_java JCombobox和JList的使用
  4. yii2的Console定时任务创建
  5. 图像局部特征(十四)--MSER特征
  6. sudo rosdep init 出现 ERROR: cannot download default sources list from:
  7. 遏制流氓软件的方法:禁止360的sesvc.exe在后台运行
  8. 实时语音趣味变声,大叔变声“妙音娘子”Get一下
  9. 抖音矩阵系统,抖音矩阵系统源码,抖音SEO源码独立部署。
  10. 计算机专业就业现状及指导
  11. 衣服裤子染色了怎么办
  12. 945928-17-6,TAMRA alkyne,5-Carboxytetramethylrhodamine-Alkyne,5-羧基四甲基罗丹明-炔烃
  13. 笔记:[windows] 简单写一个cmd命令行可执行的脚本.bat
  14. 核心网upf作用_5G核心网关键技术分析
  15. 单播、多播(主播)、广播简介
  16. CISP、CISP-PTE、CISP-DSG、CISP-IRE报名条件、考试内容、考题结构
  17. Java计算器按钮间隔_获得声音按钮的最佳方法按Java计算器?
  18. 蚂蚁笔记(Leanote)------一款国内优秀的开源项目
  19. Linux使用split命令切割大型日志文件 保留文件结尾删除前面的内容
  20. MacBook触摸板常用的手势技巧

热门文章

  1. VR全景旅游是景区发展的方向,也是旅游的延伸
  2. 96.(142)环形链表 ||
  3. 网络扫描与网络侦察-实验一
  4. 三星大中华区总裁称Galaxy S III提前至4月份发布
  5. LibFuzzer学习
  6. autocomplete触发事件_AutoCompleteBox实现鼠标点击后实现查询功能
  7. WEB 渗透题(二)
  8. windows installer cleanup utility - Windows下卸载神器
  9. 电子元器件供应商网址
  10. pandas 排序 给excel_给Excel重度用户准备的Pandas教程:用Pandas逐帧还原20个Excel常用操作...