安卓获取本机IP地址及IP归属地的方法

Android获取IP地址的两种方式(准确版) 最近看了好多网上获取IP地址的例子,发现好多都不完全准确,这里我写一下获取ip地址的两种方式。 比如微信支付,后台在做接口的时候,要求App端传入IP地址,我们需要判断是网络环境,WI-FI还是3G,所以需要获取这两种环境的ip地址。 第一步:首先是判断网络环境: String ip; ConnectivityManager conMann = (ConnectivityManager) 阅读详情

前言

本篇文章主要介绍android如何获取本机ip地址及ip归属地。

定义

ip地址是指手机在连接到互联网时所获得的唯一网络地址。 ip归属地是指通过ip地址查询器对应的地理位置信息,如省市区等信息。

获取ip地址

如果只是查看本机ip,不涉及应用开发,可以依次打开手机设置-我的设备-状态信息-ip地址界面进行查看(不同品牌手机型号会有差异)。
下面开发过程中获取本机ip方法:
1.首先是要在清单文件中配置必要的权限:
2.手机在不同的网络环境下获取ip的方法: //获取ip public void getIPAddress(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnectedOrConnecting()) {
//网络连接可用,判断网络连接类型
if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
//wifi网络
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ip = String.format(“%d.%d.%d.%d”,
(ipAddress & 0xff),
(ipAddress >> 8 & 0xff),
(ipAddress >> 16 & 0xff),
(ipAddress >> 24 & 0xff));
Log.e(“tag”, “ip:” + ip);
} else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
//移动网络
getLocalIpAddress();
}
} else {
//没有网络链接
} } private void getLocalIpAddress() {
try {
ArrayList networkInterfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface networkInterface : networkInterfaces) {
ArrayList inetAddresses = Collections.list(networkInterface.getInetAddresses());
for (InetAddress address : inetAddresses) {
String ip = address.getHostAddress();
if (!address.isLoopbackAddress() && (address instanceof Inet4Address)) {
Log.e(“tag”, “ipv4:” + ip);
}
if (!address.isLoopbackAddress() && (address instanceof Inet6Address)) {
Log.e(“tag”, “ipv6:” + ip);
}
}
}
} catch (SocketException socketException) {
Log.e(“tag”, socketException.getMessage());
} }

获取ip归属地

想要获取到ip归属地,一般需要获取到ip地址后通过第三方服务来查询,下面展示一下android使用ip数据云获取ip归属地的具体方法:
//获取ip归属地 private Location getIpData(String ip, String key) {
Location location = null;
try {
URL url = new URL(“https://api.ipdatacloud.com/v2/query?ip=” + ip + “&key=+” + key);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = in.readLine()) != null) {
sb.append(line);
}
in.close();
connection.disconnect();
// 解析返回的JSON数据,获取IP归属地信息
// 这里需要使用JSON解析库,例如gson、fastjson
String jsonResult = sb.toString();
location = new Gson().fromJson(jsonResult, Location.class);
} catch (Exception e) {
e.printStackTrace();
}
return location; }
class Location {
private String AreaCode; //行政区码
private String City; //城市
private String CityCode; //城市代码
private String Continent; //洲
private String Country; //国家/地区
private String CountryCode; //国家/地区英文简写
private String District; //区县
private String Elevation; //海拔
private String Ip; //ip地址
private String Isp; //运营商
private String Latitude; //纬度
private String Longitude; //经度
private Street[] MultiStreet; //历史街道位置
private String Province; //省份
private String Street; //街道
private String TimeZone; //时区
private String WeatherStation; //气象站
private String ZipCode; //邮编 }
class Street {
private String Lng; //经度
private String Lat; //纬度
private String Province; //省份
private String City; //城市
private String District; //区县
private String Street; //街道
private String Radius; //范围半径
private String ZipCode; //邮政编码 }

总结

本文简要总结了android获取ip地址及归属地的方法,在实际开发中还需要根据自身的实际情况进行修改。
在众多第三方服务中,ip数据云作为新一代ip地址数据服务领军者,为广大开发者提供了丰富的产品服务,具体可去官网https://www.ipdatacloud.com进行测试、咨询。

android 获取IP地址 Android 获取ip地址 阅读详情

相关推荐

Android获取如何获取当前手机IP地址

【代码】Android获取如何获取当前手机IP地址

知道的越多,不知道的越多。 1万+

Android 获取ip地址多种方式介绍

adb shell 的 ifconfig可以获取当前设备网络节点信息;这些信息使用Android代码也是可以获取的;Android 获取网络ip有多种方式,有时候某种方式获取失败的情况下;那么就可以换一种获取方式,所有多学习一下获取网络ip相关信息是有用的。本文介绍三种获取网络ip信息的方式,并且最后一种的代码不用任何权限就能获取到相关节点的ip和MAC地址,有兴趣的可以看看。

wenzhi的博客 9524

PD3.0详解 电源规则,全解!!!全解!!!

电源规则 大师匈今天谈一下PD3.0的电源规则,PD3.0标准标定的规则。 USB协议声称,为了世界和平世界环境,让大家用上统一标准的充电器,不用再为每一个用电设备都配一个专门的充电器,这些充电器各种各样的都有,所以有时候大师匈也很烦!!!那么为了维护世界和平,USB协议呢就制订了这个PD快充协议,还有它的规则,只要全世界都用PD,就解决了这个大问题。 在这里先了解一个关键字,PDP: Power Delivery Power PD电源的功率。 每个PD充电产品的功率要以0.5W的精度上报,比如大师匈做的P

大师匈的博客 1万+

Android获取设备IP方法

获取Ip地址

每天不是在写bug就是在写bug的路上 4591

android如何获取本机ip地址ip归属地

/国家/地区英文简写。

IpdataCloud的博客 1986

教你如何实现IP归属地功能

随着网络的发展先在抖音、知乎、快手、小红书等这些平台已经上线了“网络用户显示 IP 的功能”,境外用户显示的是国家,国内的用户显示的省份,而且此项显示无法关闭,归属地强制显示。今天这篇文章,就用几分钟的时间来讲述一下这个功能是怎么实现的。

青山猿的博客 1498

通过IP计算分析归属地

IP地址一般分为两种,IPV4和IPV6,相应的计算方式也有差异,以国家维度来参考,每个国家都有对应的网段范围,计算网段中的最小和最大IP地址的对应数值,然后对比请求的IP地址,来判断属于哪个国家的网段范围。IP地址一般分为两种,IPV4和IPV6,相应的计算方式也有差异,以国家维度来参考,每个国家都有对应的网段范围,计算网段中的最小和最大IP地址的对应数值,然后对比请求的IP地址。// IPv4 起始和结束IP对应的Long值。// IPv6 起始和结束IP对应的Long值。

weixin_55010563的博客 1155

Android小程序--电话归属地IP地址查询

最近做了一个关于电话归宿地和IP归属地查询的小应用,记录分享一下主要的过程。1、简介数据来源是使用的聚合数据的免费api接口。2、整体外层结构由上可知整体功能为IP查询和电话归宿地查询,外层结构由底部的导航栏,主体部分是利用Viewpager来装载了两个Fragment。然后整体使用了模仿沉浸式效果   1)MainActivity沉浸式设置代码:@Override protected v...

Swy_ww 879

如何查找专用 IP 地址

专用 IP 地址:这些地址在网络内部使用,例如,平板电脑、Wi-Fi 相机、无线打印机和台式电脑使用的家庭网络。这些类型的 IP 地址为设备提供了一种与路由器和专用家庭网络上的其他设备进行通信的方法。私有IP地址可以手动设置,也可以由路由器自动分配。专用 IP 地址要么是动态的,要么是静态的,这意味着它们要么会更改,要么不会更改。

TTmanghe的博客 1962

全球IP归属地查询免费API详细指南

接口盒子免费API提供全球IP归属地查询服务,支持IPv4/IPv6双协议查询,可获取详细的地理位置、运营商及经纬度等信息。该API完全免费,无调用上限,提供0-2三种查询通道确保准确性。通过简单的GET/POST请求即可调用,返回JSON格式数据,包含国家、省、市、区级详细位置及行政区划代码等。提供PHP和Python调用示例,适用于网站分析、安全防护、内容本地化等多种场景,具有高稳定性和准确性。使用时需提供用户ID和KEY认证,建议合理控制调用频率并完善错误处理机制。

apihz的博客 1459

python for android : 查找IP地址归属地

python for android : chk_ip.py 查找 IP 地址 归属地

belldeep的专栏 1335

android通过ip查询地址吗,Android 根据IP地址获取城市

manifest中要加的permission和activity_main.xml 参照上。MainActivity.javapackage com.example.test;import java.util.List;import java.util.Locale;import android.location.Address;import android.location.Geocoder;im...

weixin_39833290的博客 690

Android 手机上获取手机当前上网IP地址

Android 手机上获取手机当前上网IP地址 (手机网关给手机号分配的IP) 本文转自:http://blog.csdn.net/catoop/article/details/7574367 每个手机上网通过移动网关的时候,网关都会给该手机号分配一个IP地址(当然这个IP地址会在下线上线后会改变,网关都有记录的) 现在做的应用需要获取IP地址,提交给服务器,

kyrinleo的专栏 3206

Android 获取当前设备外网IP以及DNS.

如题,最近做个项目,需要获取当前设备IP地址和DNS地址.但是按照Android提供的方法获取的都是内网.网易提供了一个解决方案:请求地址:http://xx.nstool.netease.comxx为当前格林威治时间,请求返回结果是一个html内容,需要解析中间的src字段.然后获取相应的信息.包含归属地都有.我只是记录一下,避免以后忘记.哈哈哈哈!!!...

安静的胖子 4328

获取IP地址

[code="java"]public String getIpAddrByRequest(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)...

刘飞 207

ip获取归属地位置信息

Java代码实现根据ip获取位置信息,使用淘宝Api接口

ZhangYing的博客 806

全网显示 IP 归属地,是怎么实现的?

程序员的成长之路互联网/程序员/技术/资料共享关注阅读本文大概需要 3.5分钟。来自:网络,侵删为了进一步规范国内的网络舆论,国家规定了各互联网平台都需要显示 IP 归属地信息。微博、抖音、公众号等多个平台纷纷上线了 IP 归属地功能,这标志着国内言论的进一步规范化。但互联网平台商们是怎么通过 IP 定位到我们所属地区的?这背后的原理是什么?IP 归属地背后又有哪些实...

良月柒 366

后端程序员实现一个IP归属地的小程序

从上、中、下三个部分分别讲解页面的布局。整体布局主要是需要设置宽度,一般设置成90%的宽度,高度自适应。视图之间的布局主要调整边距、修改大小。文字上下居中需要设置height和改成一致。整体布局需要颜色统一,看起来简洁、大方。后端程序对前端不熟悉,但是多多练习一些标签的使用,上手还是很快的。

qq_42700121的博客 620

如何快速查找IP归属地

这两天遇到这么一个问题,就是查找一个IP归属地。当然我会有一个IP段的分配列表,格式如下: 16777472 16778239 XX省 XX市 第一列是IP段的起始IP,第二列是IP段的终止IP,第三列是对应的省份。一共大概200万条左右。 那么好了,如何进行查找呢? 想到的最简单的办法,就是二分查找。首先对这些IP段进行首位相接的排序,之后一个二分查找。那么有没有...

andun6063的博客 582

RK3588开发笔记-ES8311音频芯片调试记录

本篇博客主要记录如何在RK3588平台试ES8311音频芯片的过程。这包括硬件连接、内核配置、驱动程序调试和测试步骤。通过以上步骤,我们成功在RK3588平台上调试了ES8311音频芯片。这包括硬件连接、内核配置、设备树配置、驱动加载以及音频测试。希望这篇调试记录能为其他开发者提供一些帮助。如果你有任何问题或建议,欢迎留言讨上调论。

flypig has a dream! 3106

埃斯顿伺服上位机 ESView V4.1.2.1007 Setup

埃斯顿伺服上位机 ESView V4.1.2.1007 Setup

上一篇: 详细IP归属地AIP查询方法
zeor0
博客等级 码龄11年 48粉丝 14原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值