本地内网ip的获取
string ip = Network.player.ipAddress;
Debug.Log("ip:"+ ip);
外网ip的获取
IEnumerator GetIp()
{
WWW w = new WWW(@"http://icanhazip.com/");//借助第三方库返回外网IP
yield return w;
Debug.Log(w.text);
}
2020.6.4修正:最近一个项目用到了http://icanhazip.com/这个ip查询库,发现返回的时而是ipv4,时而是ipv6,然后我测试了一下,原来是现在把这个分细了,ipv4现在用的是http://ipv4.icanhazip.com/,ipv6用的是http://ipv6.icanhazip.com/,至于老链接就随缘了。
返回详细归属地信息
IEnumerator IpDemand()
{
WWW w = new WWW(@"http://icanhazip.com/");
//先获取外网IP
yield return w;
//通过淘宝IP的第三方库获取IP的详细信息
WWW www = new WWW(@"http://ip.taobao.com/service/getIpInfo.php?ip="+w.text);
yield return www;
if (www.error != null)
print("error is login:" + www.error);
else
Debug.Log(www.text);
}
下面介绍一下淘宝IP的相关
1. 请求接口(GET): (注意:ip地址的字符串外面没有方括号)
http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串]
格式实际为http://ip.taobao.com/service/getIpInfo.php?ip=XXX.XXX.XXX.XXX)
2. 响应信息:
(json格式的)国家 、省(自治区或直辖市)、市(县)、运营商
3. 返回数据格式: (Json格式)
{
"code":0,
"data":{
"ip":"210.75.225.254",
"country":"\u4e2d\u56fd",
"area":"\u534e\u5317",
"region":"\u5317\u4eac\u5e02",
"city":"\u5317\u4eac\u5e02",
"county":"",
"isp":"\u7535\u4fe1",
"country_id":"86",
"area_id":"100000",
"region_id":"110000",
"city_id":"110000",
"county_id":"-1",
"isp_id":"100017"
}
}
其中code的值的含义为,0:成功,1:失败。