0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

IP数据云 来源:IP数据云 作者:IP数据云 2024-11-20 11:57 次阅读

# 前言 #
本篇文章主要介绍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/?utm-source=WZJ&utm-keyword=?2826进行测试、咨询。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3935

    浏览量

    127348
  • IP
    IP
    +关注

    关注

    5

    文章

    1703

    浏览量

    149509
收藏 人收藏

    评论

    相关推荐

    为什么说行业监管离不开IP地址查询

    归属地,比如某音,这种归属地显示可以从一定程度上维护网络秩序。 在面对诸如DDoS攻击、黑客入侵、恶意软件传播等安全威胁时,相关机构和网络安全团队能够借助IP地址查询威廉希尔官方网站 ,可以快速定
    的头像 发表于 12-21 10:04 89次阅读

    怎么绑定IP地址和MAC地址

    本篇文章主要说一说怎么在本地计算机上绑定IP和MAC地址以及通过路由器绑定IP和MAC地址,并且这两者绑定可以解决什么问题。   先来说说怎么去绑定 本地计算上绑定
    的头像 发表于 12-01 22:48 210次阅读

    IP地址归属地离线库——网络安全行业的基石

    IP地址因为其在互联网中的必要性与特殊性成为了是网络安全行业的第一道防线。一个IP地址归属地离线库包含大洲、国家、省市、经纬度、邮编等内容,
    的头像 发表于 11-19 11:21 229次阅读

    常见的IP地址查询威廉希尔官方网站

    1. 在线IP地址查询工具   在线IP地址查询服务是获取IP
    的头像 发表于 09-26 10:21 346次阅读
    常见的<b class='flag-5'>IP</b><b class='flag-5'>地址</b>查询威廉希尔官方网站

    IP地址小分享

    一、IP地址的作用与重要性 唯一标识:在网络通信中,每个连接到互联网的设备都必须拥有唯一的IP地址,这样才能确保数据在网络中正确地路由和传递。想象一下,如果网络中的设备没有
    的头像 发表于 09-25 14:21 203次阅读
    <b class='flag-5'>IP</b><b class='flag-5'>地址</b>小分享

    各大平台如何展示全网的IP归属地

    小红薯、某音、块手等APP陆续开始展示IP归属地,那么,各大平台是如何做到这一点的呢?
    的头像 发表于 09-21 10:33 264次阅读

    IP地址会被黑?

    IP地址会被黑?是的,你的IP地址如果不幸被恶意分子盯上,就会被恶意利用,这会引发一系列明显的异常表现。就像网络会突然变得异常缓慢,下载速度骤降,网页无法加载,更甚至在打游戏时,频繁出
    的头像 发表于 09-12 14:24 328次阅读

    IP地址安全与隐私保护

    在当今数字化时代,IP地址作为网络设备的唯一身份标识,在网络安全与隐私保护中扮演着至关重要的角色。然而,随着网络威廉希尔官方网站 的飞速发展,IP地址也面临着诸多挑战,对用户的隐私和网络安全构成了潜
    的头像 发表于 09-03 15:59 461次阅读

    购买海外虚拟IP地址可以通过以下几种方式#虚拟IP地址

    ip地址
    jf_62215197
    发布于 :2024年08月16日 07:16:04

    IP地址的分配

    公有IP地址与私有IP地址 公有IP地址:用于互联网上的全球唯一
    的头像 发表于 08-09 14:55 761次阅读

    IP地址定位与GPS定位:威廉希尔官方网站 解析与应用比较

    (InternetProtocolAddress)是分配给联网设备的唯一标识符。IP地址定位通过分析设备的IP地址,推断其地理位置。IP
    的头像 发表于 07-16 13:50 532次阅读

    请问如何获取AP的IP地址

    请问如何获取AP的IP地址
    发表于 07-16 07:58

    IP地址与网络监控

    在当今的数字时代,网络安全已成为企业和个人都十分关注的重要话题。通过IP地址进行网络监控,可以有效地检测异常流量和可疑活动,从而保护网络免受潜在威胁。本文将详细讨论如何利用IP地址进行
    的头像 发表于 07-09 16:41 410次阅读

    CentOS虚拟机克隆后开机无法获取IP地址的解决策略

    克隆虚拟机后出现一台能获取IP地址,另外一台获取不到IP地址,查看MAC
    的头像 发表于 04-17 12:27 734次阅读
    CentOS虚拟机克隆后开机无法<b class='flag-5'>获取</b><b class='flag-5'>IP</b><b class='flag-5'>地址</b>的解决策略

    获取Telegram的用户IP地址

    最近有个需求,查了些资料发现,Telegram有语音通话功能,也可以类似QQ一样通过语音通话的连接获取对方的IP地址, Denis Simonov (原文为俄语)发表过一篇文章,演示了如何通过 Telegram 语音呼叫
    的头像 发表于 01-12 11:35 1670次阅读
    <b class='flag-5'>获取</b>Telegram的用户<b class='flag-5'>IP</b><b class='flag-5'>地址</b>