获得外网ip,linux获取外网ip

作者: 韦德国际1946国际网址  发布:2019-05-28

  引言:近来得到ip的主意中,ifconfig和ip获取函数获得的都是内网ip。有的时候候需求取得外网ip,如今通用的做法,是向外部服务器发送请求,解析外部服务器响应,从而获取的和谐的外网ip。Linux下的 curl能够替大家做到那一个干活儿,当然,不怕麻烦的话,可以协和剖判http协议,自身完结上述进程。借使熟识python的话,那就更简短了,就如大家所知晓的,python总是有现存的库函数可供大家调用。一下计算三种获得外网ip的方法,以供查询,资料来自网络。

获得外网ip,linux获取外网ip。前几天在网络找了1个获得外网地址的秘诀无奈,Data的initcontentsOfU路虎极光L一贯糟糕使,然后查询了有的资料取得了二个能应用的措施。上边贴代码。

public string GetIP()
    {
        string strUrl = "http://www.ip138.com/ip2city.asp"; //获得IP的网址了   
        Uri uri = new Uri(strUrl);
        WebRequest wr = WebRequest.Create(uri);
        Stream s = wr.GetResponse().GetResponseStream();
        StreamReader sr = new StreamReader(s, Encoding.Default);
        string all = sr.ReadToEnd(); //读取网站的数据   
        int i = all.IndexOf("[")   1;

        int j = all.IndexOf("]");

Linux获取外网ip

参谋资料:

/// 获取外网ip

///

/// - Returns: 外网ip

func getIpinfo() ->String?

{

/** 这是ip查询网址 */

let urlStr = ""

/** 编码为上边调换数据做希图 */

let strEncoding = urlStr.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)

if strEncoding != nil {

do{

let data = try Data.init(contentsOf: URL.init(string: strEncoding!)!)

do

{

/** 解析data */

if let resultDic = try JSONSerialization.jsonObject(with: data, options: .mutableLeaves) as? [String:Any]

{

/** 打字与印刷结果 那边数据比较多类似以下数据 */

/** {

code = 0;

data =    {

area = "U534eU4e1c";

"area_id" = 300000;

city = "U4e0aU6d77U5e02";

"city_id" = 310100;

country = "U4e2dU56fd";

"country_id" = CN;

county = "";

"county_id" = "-1";

ip = "139.226.164.200";

isp = "U8054U901a";

"isp_id" = 100026;

region = "U4e0aU6d77U5e02";

"region_id" = 310000;

};

} */

print(resultDic)

/** 用guard逻辑稍微清晰点  */

guard let resultCode = resultDic["code"] as? Int  else

{

print("data error")

return nil;

}

guard resultCode == 0 else

{

print("code error")

return nil

}

guard let dataDic = resultDic["data"] as? [String:Any] else

{

print("dic info error")

return nil;

}

guard let ip = dataDic["ip"] as? String else

{

print("ip error")

return nil;

}

/** 获得终极结出 */

return ip

}

}

catch

{

print(error.localizedDescription)

}

}

catch

{

print(error.localizedDescription)

}

}

return nil

}

正如欣赏swift的机制把不明确因素在代码分界面排除援助swift

忘了补偿下 记得在info.plist文件中加http传输协议许可

*          string ip = all.Substring(i, j-i).Trim();*

 

return ip;
    }

方法一:curl -s " -f 6 -d" "|cut -f 1 -d"<"    www.2cto.com       

方法二:w3m -dump | grep -P -o '(d .){3}d ' 

 

方法三:curl ifconfig.me          

$ curl ifconfig.me
$ curl icanhazip.com
$ curl ident.me
$ curl ipecho.net/plain
$ curl whatismyip.akamai.com
$ curl tnx.nl/ip
$ curl myip.dnsomatic.com
$ curl ip.appspot.com
$ curl -s checkip.dyndns.org | sed 's/.*IP Address: ([0-9.]*).*/1/g'

 

本文由韦德国际1946发布于韦德国际1946国际网址,转载请注明出处:获得外网ip,linux获取外网ip

关键词: ios swift 随笔