본문 바로가기
개발언어/C#.NET

C# 호스트의 외부아이피 가져오기 (howing the external IP-address in C#)

by 엔돌슨 2009. 5. 9.
반응형



Get IP Address from DNS Hostname in C#

하는 방법이다.
말그대로 호스트네임에서 IP주소를 가져오는 방법이다.


            string myHost = System.Net.Dns.GetHostName();
            string myIP = System.Net.Dns.GetHostByName(myHost).AddressList[0].ToString();
            txt_ip.Text = myIP.ToString();  //호스트의 IP를 가져온다.

이렇게되면 좋기는 하지만, 내부아이피를 가져오는 문제가 있다.






A frequent task when designing applications that work with TCP/IP and the internet is to lookup an IP address from a hostname. It's much easier for users to deal with the hostname than having to type in an IP address.

First you'll add the System.Net namespace to your using section:

using System.Net;

Example of code to get address from hostname:

string howtogeek = "www.daum.com";
IPAddress[] addresslist = Dns.GetHostAddresses(howtogeek);

foreach (IPAddress theaddress in addresslist)
{
Console.WriteLine(theaddress.ToString());
}
사이트의 IP주소를 가져오는 방법이다.











외부 아이피를 가져오는 방법이다.
포럼에서 외부아이피를 어떤식으로 가져오는 지 이야기하고 있다.

처음에는 c#으로 가져오는 이야기를 하더니 결국은 ip check사이트에서 뜨는 문자열을 정규식으로
가져오는 방법으로 결론으로 치닫는다 ㅎㅎ


포럼내용
http://www.dreamincode.net/forums/showtopic24692.htm






 public string getExternalIp()
       
{
           
try
           
{
               
string whatIsMyIp = "http://www.whatismyip.com/automation/n09230945.asp";
               
WebClient wc = new WebClient();
                UTF8Encoding utf8
= new UTF8Encoding();
               
string requestHtml = "";

                requestHtml
= utf8.GetString(wc.DownloadData(whatIsMyIp));

               
IPAddress externalIp = null;

                externalIp
= IPAddress.Parse(requestHtml);

               
return externalIp.ToString();
           
}
           
catch
           
{
               
return "";
           
}
       
}