コード
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">
のライン上の自分の理解の長さ。