C#/。NET IPネットワークとパブリックネットワークを得ます

コード

private void GetIP()
{
	//内网(局域网)IP
    IPAddress LocalIP = Dns.GetHostAddresses(Dns.GetHostName()).Where(ip => ip.AddressFamily.ToString().Equals("InterNetwork")).FirstOrDefault();
	
	//外网(公网)IP
    Stream stream = null;
    StreamReader streamReader = null;
    try
    {
        stream = WebRequest.Create("https://www.ipip5.com/").GetResponse().GetResponseStream();
        streamReader = new StreamReader(stream, Encoding.UTF8);
        var str = streamReader.ReadToEnd();
        int first = str.IndexOf("<span class=\"c-ip\">") + 19;
        int last = str.IndexOf("</span>", first);
        var ip = str.Substring(first, last - first);
        IPAddress PublicIP = IPAddress.Parse(ip);		//这里就得到了
    }
    catch (Exception ex)
    {
        Console.WriteLine($"出错了,{ex.Message}。获取失败");
    }
    finally
    {
        streamReader?.Dispose();
        stream?.Dispose();
    }
}

控訴がパブリックIPアクセスの原則があり得るhttps://www.ipip5.com/そのHTMLを取得するには、理論的には、このURLは、任意のクエリIPサイトすることができ
ここに画像を挿入説明
、コンテンツ、その後、ライン上の文字列の一連の所望の動作を得ます

上記のコード

int first = str.IndexOf("<span class=\"c-ip\">") + 19;

ここでは図19 <span class="c-ip">のライン上の自分の理解の長さ。

公開された62元の記事 ウォン称賛68 ビュー160 000 +

おすすめ

転載: blog.csdn.net/ZUFE_ZXh/article/details/104610890