본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# - IP 주소 추출기 ( 책 : C# 5.0 프로그래밍 실전 프로젝트 / Book / IPAddress / GetHostName / GetHostAddresses / 내부IP / 외부IP / 공인IP / 내부아이피 / 외부아이피 / 공인아이피 )

728x90
반응형


 WPF & C# - IP 주소 추출기 ( 책 : C# 5.0 프로그래밍 실전 프로젝트 / Book / IPAddress / GetHostName / GetHostAddresses / 내부IP / 외부IP / 공인IP / 내부아이피 / 외부아이피 / 공인아이피 )



ip.zip



MainWindow.xaml



1
2
3
4
5
<StackPanel>
    <TextBlock Text="IP 추출" FontWeight="Bold" FontSize="20"></TextBlock>
    <Button x:Name="btn" Content="IP 추출" Click="btn_Click"></Button>
    <ListBox x:Name="lbx"></ListBox>
</StackPanel>
cs



MainWindow.xaml.cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void btn_Click(object sender, RoutedEventArgs e)
{
    try
    {
        string hostname = null;
        IPAddress[] ips;
        hostname = Dns.GetHostName();   // 로컬 컴퓨터 호스트 명
        ips = Dns.GetHostAddresses(hostname);   // 해당 호스트 명의 IP 주소
        foreach (IPAddress ip in ips)
        {
            lbx.Items.Add("호스트 명 :" + hostname);
            lbx.Items.Add("아이피 :" + ip.ToString());
        }
    }
    catch
    {
        MessageBox.Show("정보를 나타내는데 오류가 있습니다.""오류 메시지", MessageBoxButton.OK, MessageBoxImage.Error);
    }
}
cs




책보고 그대로 따라 했다.

C# 언어 이지만 WPF 에서 대부분 잘 되기 때문에 그냥 따라했다.

책을 본다는건 정말 기초와 핵심을 공부하기 좋은거 같다.


IP4 주소만 따오려면 아래와 같이 하면 된다.


1
2
3
4
5
6
7
8
IPHostEntry ipEntry = Dns.GetHostEntry(Dns.GetHostName());
IPAddress[] addr = ipEntry.AddressList;
 
for (int i = 0; i < addr.Length; i++)
{
    if (addr[i].ToString().Split('.').Count() == 4)
    lbl.Content += "IP Address : " + addr[i].ToString() + "\n\n";
}
cs



공인IP (외부IP)는 아래와 같이 가져온다.

1
2
3
4
5
6
try
{
    string externalip = new WebClient().DownloadString("http://ipinfo.io/ip").Trim(); //http://icanhazip.com
    lbl.Content += "IP Address : " + externalip + "\n\n";
}
catch { }
cs


https://stackoverflow.com/questions/6803073/get-local-ip-address


728x90
반응형