C# 如何显示IPv4地址而不是IPv6地址

C# 如何显示IPv4地址而不是IPv6地址,c#,ip,show,C#,Ip,Show,我有这个问题,我写了一个小应用程序来显示计算机的主机名和IP地址 主机名没问题,我现在面临的问题是 在某些Windows 7/8计算机上显示IPv6皱眉|::( 如何强制每次只返回IPv4 这是我的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using Syst

我有这个问题,我写了一个小应用程序来显示计算机的主机名和IP地址

主机名没问题,我现在面临的问题是

在某些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;
     }
   }
  }
}
试试这个

声明一个字符串

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;
    }

您是否尝试过使用空主机名

以下MSDN():

当传递空字符串作为主机名时,此方法将返回除Windows Server 2003之外的所有操作系统的本地主机的IPv4地址;对于Windows Server 2003,将同时返回本地主机的IPv4和IPv6地址


我很抱歉说得离题了,但是这个用户名真的被允许吗?我觉得作为一个黑人我可以使用它?或者如何使用?其他黑人可能仍然会被冒犯,因为这个词在本质上是贬义的。只是一件小事。当我加入我的VPN时,它返回我的VPN IPv4,而不是从局域网返回?你认为呢?我能绕开它吗?对不起,f或者回复太晚。忙着度假。所以你连接到了VPN。仅供参考,许多企业VPN集中器/端点的工作方式与Cisco的类似。在Cisco世界中,默认情况下。在您的情况下,本地LAN连接默认关闭。请尝试。