RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

android如何獲取本機(jī)ip地址及ip歸屬地

IP數(shù)據(jù)云 ? 來(lái)源:IP數(shù)據(jù)云 ? 作者:IP數(shù)據(jù)云 ? 2024-11-20 11:57 ? 次閱讀

# 前言 #
本篇文章主要介紹android如何獲取本機(jī)ip地址及ip歸屬地。

# 定義 #
ip地址是指手機(jī)在連接到互聯(lián)網(wǎng)時(shí)所獲得的唯一網(wǎng)絡(luò)地址。
ip歸屬地是指通過(guò)ip地址查詢器對(duì)應(yīng)的地理位置信息,如省市區(qū)等信息。

# 獲取ip地址 #
如果只是查看本機(jī)ip,不涉及應(yīng)用開(kāi)發(fā),可以依次打開(kāi)手機(jī)設(shè)置-我的設(shè)備-狀態(tài)信息-ip地址界面進(jìn)行查看(不同品牌手機(jī)型號(hào)會(huì)有差異)。
下面開(kāi)發(fā)過(guò)程中獲取本機(jī)ip方法:
1.首先是要在清單文件中配置必要的權(quán)限:



2.手機(jī)在不同的網(wǎng)絡(luò)環(huán)境下獲取ip的方法:
//獲取ip
public void getIPAddress(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnectedOrConnecting()) {
//網(wǎng)絡(luò)連接可用,判斷網(wǎng)絡(luò)連接類型
if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
//wifi網(wǎng)絡(luò)
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) {
//移動(dòng)網(wǎng)絡(luò)
getLocalIpAddress();
}
} else {
//沒(méi)有網(wǎng)絡(luò)鏈接
}
}
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地址后通過(guò)第三方服務(wù)來(lái)查詢,下面展示一下android使用ip數(shù)據(jù)云獲取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數(shù)據(jù),獲取IP歸屬地信息
// 這里需要使用JSON解析庫(kù),例如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; //行政區(qū)碼
private String City; //城市
private String CityCode; //城市代碼
private String Continent; //洲
private String Country; //國(guó)家/地區(qū)
private String CountryCode; //國(guó)家/地區(qū)英文簡(jiǎn)寫(xiě)
private String District; //區(qū)縣
private String Elevation; //海拔
private String Ip; //ip地址
private String Isp; //運(yùn)營(yíng)商
private String Latitude; //緯度
private String Longitude; //經(jīng)度
private Street[] MultiStreet; //歷史街道位置
private String Province; //省份
private String Street; //街道
private String TimeZone; //時(shí)區(qū)
private String WeatherStation; //氣象站
private String ZipCode; //郵編
}

class Street {
private String Lng; //經(jīng)度
private String Lat; //緯度
private String Province; //省份
private String City; //城市
private String District; //區(qū)縣
private String Street; //街道
private String Radius; //范圍半徑
private String ZipCode; //郵政編碼
}
# 總結(jié) #
本文簡(jiǎn)要總結(jié)了android獲取ip地址及歸屬地的方法,在實(shí)際開(kāi)發(fā)中還需要根據(jù)自身的實(shí)際情況進(jìn)行修改。
在眾多第三方服務(wù)中,ip數(shù)據(jù)云作為新一代ip地址數(shù)據(jù)服務(wù)領(lǐng)軍者,為廣大開(kāi)發(fā)者提供了豐富的產(chǎn)品服務(wù),具體可去官網(wǎng)https://www.ipdatacloud.com/?utm-source=WZJ&utm-keyword=?2826進(jìn)行測(cè)試、咨詢。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3935

    瀏覽量

    127335
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1701

    瀏覽量

    149500
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    為什么說(shuō)行業(yè)監(jiān)管離不開(kāi)IP地址查詢

    歸屬地,比如某音,這種歸屬地顯示可以從一定程度上維護(hù)網(wǎng)絡(luò)秩序。 在面對(duì)諸如DDoS攻擊、黑客入侵、惡意軟件傳播等安全威脅時(shí),相關(guān)機(jī)構(gòu)和網(wǎng)絡(luò)安全團(tuán)隊(duì)能夠借助IP地址查詢技術(shù),可以快速定
    的頭像 發(fā)表于 12-21 10:04 ?71次閱讀

    怎么綁定IP地址和MAC地址

    本篇文章主要說(shuō)一說(shuō)怎么在本地計(jì)算機(jī)上綁定IP和MAC地址以及通過(guò)路由器綁定IP和MAC地址,并且這兩者綁定可以解決什么問(wèn)題。 ? 先來(lái)說(shuō)說(shuō)怎么去綁定 本地計(jì)算上綁定
    的頭像 發(fā)表于 12-01 22:48 ?203次閱讀

    IP地址歸屬地離線庫(kù)——網(wǎng)絡(luò)安全行業(yè)的基石

    IP地址因?yàn)槠湓诨ヂ?lián)網(wǎng)中的必要性與特殊性成為了是網(wǎng)絡(luò)安全行業(yè)的第一道防線。一個(gè)IP地址歸屬地離線庫(kù)包含大洲、國(guó)家、省市、經(jīng)緯度、郵編等內(nèi)容,
    的頭像 發(fā)表于 11-19 11:21 ?227次閱讀

    常見(jiàn)的IP地址查詢技術(shù)

    1. 在線IP地址查詢工具 ? 在線IP地址查詢服務(wù)是獲取IP
    的頭像 發(fā)表于 09-26 10:21 ?342次閱讀
    常見(jiàn)的<b class='flag-5'>IP</b><b class='flag-5'>地址</b>查詢技術(shù)

    IP地址小分享

    一、IP地址的作用與重要性 唯一標(biāo)識(shí):在網(wǎng)絡(luò)通信中,每個(gè)連接到互聯(lián)網(wǎng)的設(shè)備都必須擁有唯一的IP地址,這樣才能確保數(shù)據(jù)在網(wǎng)絡(luò)中正確地路由和傳遞。想象一下,如果網(wǎng)絡(luò)中的設(shè)備沒(méi)有
    的頭像 發(fā)表于 09-25 14:21 ?200次閱讀
    <b class='flag-5'>IP</b><b class='flag-5'>地址</b>小分享

    各大平臺(tái)如何展示全網(wǎng)的IP歸屬地

    小紅薯、某音、塊手等APP陸續(xù)開(kāi)始展示IP歸屬地,那么,各大平臺(tái)是如何做到這一點(diǎn)的呢?
    的頭像 發(fā)表于 09-21 10:33 ?263次閱讀

    IP地址會(huì)被黑?

    IP地址會(huì)被黑?是的,你的IP地址如果不幸被惡意分子盯上,就會(huì)被惡意利用,這會(huì)引發(fā)一系列明顯的異常表現(xiàn)。就像網(wǎng)絡(luò)會(huì)突然變得異常緩慢,下載速度驟降,網(wǎng)頁(yè)無(wú)法加載,更甚至在打游戲時(shí),頻繁出
    的頭像 發(fā)表于 09-12 14:24 ?327次閱讀

    IP地址安全與隱私保護(hù)

    在當(dāng)今數(shù)字化時(shí)代,IP地址作為網(wǎng)絡(luò)設(shè)備的唯一身份標(biāo)識(shí),在網(wǎng)絡(luò)安全與隱私保護(hù)中扮演著至關(guān)重要的角色。然而,隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,IP地址也面臨著諸多挑戰(zhàn),對(duì)用戶的隱私和網(wǎng)絡(luò)安全構(gòu)成了潛
    的頭像 發(fā)表于 09-03 15:59 ?454次閱讀

    購(gòu)買(mǎi)海外虛擬IP地址可以通過(guò)以下幾種方式#虛擬IP地址

    ip地址
    jf_62215197
    發(fā)布于 :2024年08月16日 07:16:04

    IP地址的分配

    公有IP地址與私有IP地址 公有IP地址:用于互聯(lián)網(wǎng)上的全球唯一
    的頭像 發(fā)表于 08-09 14:55 ?746次閱讀

    IP地址定位與GPS定位:技術(shù)解析與應(yīng)用比較

    (InternetProtocolAddress)是分配給聯(lián)網(wǎng)設(shè)備的唯一標(biāo)識(shí)符。IP地址定位通過(guò)分析設(shè)備的IP地址,推斷其地理位置。IP
    的頭像 發(fā)表于 07-16 13:50 ?527次閱讀

    請(qǐng)問(wèn)如何獲取AP的IP地址?

    請(qǐng)問(wèn)如何獲取AP的IP地址?
    發(fā)表于 07-16 07:58

    IP地址與網(wǎng)絡(luò)監(jiān)控

    在當(dāng)今的數(shù)字時(shí)代,網(wǎng)絡(luò)安全已成為企業(yè)和個(gè)人都十分關(guān)注的重要話題。通過(guò)IP地址進(jìn)行網(wǎng)絡(luò)監(jiān)控,可以有效地檢測(cè)異常流量和可疑活動(dòng),從而保護(hù)網(wǎng)絡(luò)免受潛在威脅。本文將詳細(xì)討論如何利用IP地址進(jìn)行
    的頭像 發(fā)表于 07-09 16:41 ?407次閱讀

    CentOS虛擬機(jī)克隆后開(kāi)機(jī)無(wú)法獲取IP地址的解決策略

    克隆虛擬機(jī)后出現(xiàn)一臺(tái)能獲取IP地址,另外一臺(tái)獲取不到IP地址,查看MAC
    的頭像 發(fā)表于 04-17 12:27 ?732次閱讀
    CentOS虛擬機(jī)克隆后開(kāi)機(jī)無(wú)法<b class='flag-5'>獲取</b><b class='flag-5'>IP</b><b class='flag-5'>地址</b>的解決策略

    獲取Telegram的用戶IP地址

    最近有個(gè)需求,查了些資料發(fā)現(xiàn),Telegram有語(yǔ)音通話功能,也可以類似QQ一樣通過(guò)語(yǔ)音通話的連接獲取對(duì)方的IP地址, Denis Simonov (原文為俄語(yǔ))發(fā)表過(guò)一篇文章,演示了如何通過(guò) Telegram 語(yǔ)音呼叫
    的頭像 發(fā)表于 01-12 11:35 ?1669次閱讀
    <b class='flag-5'>獲取</b>Telegram的用戶<b class='flag-5'>IP</b><b class='flag-5'>地址</b>
    RM新时代网站-首页