一開始我獲取獲取外網IP,是用的是觸動文檔裏提供的方法:
--獲取外網ip地址
local sz = require("sz")
local http = require("szocket.http")
local res, code = http.request("http://www.ip.cn/");--如果此網址無反應,請嘗試替換爲 http://1212.ip138.com/ic.asp 或其他網址
if code == 200 then
local i,j = string.find(res, "%d+%.%d+%.%d+%.%d+")
local ipaddr =string.sub(res,i,j)
dialog(ipaddr,0)
end
但是有次目標網站訪問失敗,就會使IP地址獲取失敗,過於依賴目標網址,所以我又新找到一個方法去獲取IP地址:
--獲取外網ip
function getIP()
os.execute("curl ifconfig.me > /var/mobile/ip.txt ")
local ip= readFileString("/var/mobile/ip.txt")
if ip~=nil and ip~="" then
ip= string.gsub(ip,"\\s","")
local i,j = string.find(ip, "%d+%.%d+%.%d+%.%d+")
ip =string.sub(ip,i,j)
nLog("獲取到的ip地址爲:"..ip)
else
nLog("未獲取到ip")
if ip==nil then
ip=""
end
end
return ip
end
iOS是基於Linux系統,所以使用Linux的命令來獲取外網IP,然後輸出到文件中,讀取文件來獲取IP地址.
但是看到網上的一些信息ifconfig.me好像還會掛? !-_-,如果使用上面的方法還是獲取不到,可以嘗試使用curl ipip.net,curl ip.cn, curl cip.cc, curl myip.ipip.net等多個地址
其他獲取IP地址的信息了來自:http://blog.csdn.net/orangleliu/article/details/51994513
2017/09/18
有次我通過上面的方式去獲取IP地址的信息,但是沒有獲取到,查了下,好像是命令的原因,結果輸出到文件中,但是裏面的內容是空的,而且速度很快不像是進行了網絡訪問的樣子.不知道是不是某些iOS的設備或者是版本不支持的原因,沒太深究,將其換到了自己的服務器上,寫了一個接口可以返回ip地址信息的.算是一個補充吧.
在服務器可以獲取到客戶端的IP地址.然後在客戶端訪問的時候將結果輸出出來就可以了
2018/07/06
如果上面的方法都行不通
百度搜索ip有很多網站提供查看ip的功能,去用http訪問這些網站,然後拿到結果之後解析出其中的ip地址就OK了