开发者

How to get internet IP address from C# Windows App [duplicate]

开发者 https://www.devze.com 2023-02-02 01:14 出处:网络
This question already has answers here: Closed 12 years ago. Possible Duplicates: how to get my own IP address in C#?
This question already has answers here: Closed 12 years ago.

Possible Duplicates:

how to get my own IP address in C#?

how to get ip address of machine in c#

Hi all, I am currently developing 开发者_如何学Ca c# application for windows using WPF. I would like to get the computers external IP address i.e. the internet address not the local computer ip address or the local router address.

Thanks for your help.


Like stated earlier, you need an external web server. An easy call to HTTP GET with the URL "http://checkip.dyndns.org/" will get you a simple text string with your IP.


You need to have a web server sitting somewhere in the cloud so that you can call and that will be able to give you your external IP address.

Looks like this one is free.


[EDIT] A simple request to here will get you your ip.

This is a way to get any network address (not necessarily the internet ip) as pointed out in the comments:

IPAddress host = IPAddress.None;
foreach (IPAddress ip in Dns.GetHostAddresses(Dns.GetHostName()))
    {
        host = ip;
        if (ip.AddressFamily == AddressFamily.InterNetwork)
             break;
    }


The only way I have found is to do a httpWebRequest to http://www.whatismyip.com/automation/n09230945.asp and parse the results for the ip


You can try connecting to whatismyip.com, as shown in the code below:

using System;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;

namespace DreamInCode.Snippets
{
    public class IpFinder
    {
        public static IPAddress GetExternalIp()
        {
            string whatIsMyIp = "http://whatismyip.com";
            string getIpRegex = @"(?<=<TITLE>.*)\d*\.\d*\.\d*\.\d*(?=</TITLE>)";
            WebClient wc = new WebClient();
            UTF8Encoding utf8 = new UTF8Encoding();
            string requestHtml = "";
            try
            {
                requestHtml = utf8.GetString(wc.DownloadData(whatIsMyIp));
            }
            catch (WebException we)
            {
                // do something with exception
                Console.Write(we.ToString());
            }
            Regex r = new Regex(getIpRegex);
            Match m = r.Match(requestHtml);
            IPAddress externalIp = null;
            if (m.Success)
            {
                externalIp = IPAddress.Parse(m.Value);
            }
            return externalIp;
        }
    }
}

NOTE: The code comes from this post http://www.dreamincode.net/forums/topic/24692-showing-the-external-ip-address-in-c%23/ .

0

精彩评论

暂无评论...
验证码 换一张
取 消