2014-01-30 3 views
0

У меня возникла эта проблема, я написал небольшое приложение для отображения имени компьютера и IP-адреса.Как отобразить IPv4-адрес Не IPv6

Hostname horks не проблема, вопрос я сижу с это ...

На некоторых Windows 7/8 компьютеров отображает IPv6 хмуриться | :(

Как заставить возвращать только IPv4 каждый раз

Это мой код:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Net; 

namespace IPChecker 
{ 
    public partial class Form1 : Form 
    { 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
    label1.Text = "Host Computer: " + Dns.GetHostName(); 
    foreach (IPAddress address in Dns.GetHostAddresses(Dns.GetHostName())) 
    { 
     label2.Text = "IP Address: " + address; 
    } 
    } 
    } 
} 
+4

Прошу прощения за то, что вы не в тему, но действительно ли это имя пользователя ?! –

+1

Я чувствую, что как черный парень я могу его использовать? или как ? – s0mePe0ple

+1

другие чернокожие люди все еще могут быть оскорблены, поскольку это слово является уничижительным по своей природе. – rlemon

ответ

1

Попробуйте это ..

Объявляет строку ..

public static string Ipv4() 
    { 
     string ipv4Address = String.Empty; 

     foreach (IPAddress currentIPAddress in Dns.GetHostAddresses(Dns.GetHostName())) 
     { 
      if (currentIPAddress.AddressFamily.ToString() == System.Net.Sockets.AddressFamily.InterNetwork.ToString()) 
      { 
       ipv4Address = currentIPAddress.ToString(); 
       break; 
      } 
     } 

     return ipv4Address; 
    } 
+0

Эй, спасибо вам, это именно то, что я хочу! – s0mePe0ple

+0

Только одна маленькая вещь. Пока я подключен к своей VPN, он возвращает мой VPN IPv4, а не из локальной сети? Как вы думаете? Могу ли я обойти это? – s0mePe0ple

+0

Извините за поздний ответ. Занят с праздником. Итак, вы подключены к VPN..FYI. Многие корпоративные концентраторы/конечные точки VPN предприятия работают как Cisco. В мире Cisco по умолчанию. В вашем случае локальное подключение по локальной сети отключено по умолчанию. Попробуйте [Эта ссылка] (http://en.kioskea.net/forum/affich-67204-vpn-connects-but-no-remote-lan-access). –

1

Вы пробовали с пустым именем?

После MSDN (http://msdn.microsoft.com/en-us/library/system.net.dns.gethostaddresses(v=vs.110).aspx):

Когда пустая строка передается в качестве имени хоста, этот метод возвращает IPv4-адреса локального хоста для всех операционных систем, за исключением Windows Server 2003; для Windows Server 2003 возвращаются оба адреса IPv4 и IPv6 для локального хоста.

Смежные вопросы