C#怎样判断一个地址是IPv4还是IPv6

请问用C#怎样判断一个地址是IPv4还是IPv6?请详细一点。十万火急!!... 请问用C#怎样判断一个地址是IPv4还是IPv6?
请详细一点。
十万火急!!
展开
 我来答
老猿小郭
2009-03-16 · TA获得超过2763个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:578万
展开全部
IPv4跟IPv6的地址最大差别就是长度,IPv4地址为2^32一个地址,而IPv6则是2^128一个地址,常见的IPv4地址是192.168.10.1这样的形式,而IPv6则是21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A这种形式
详见IPv6地址详解http://sj.media.edu.cn/xiayidai/index2.php?IDx=274

参考资料: http://sj.media.edu.cn/xiayidai/index2.php?IDx=274

Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
CH似水年华
2009-03-17 · 超过23用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:71.2万
展开全部
// This program shows how to use the IPAddress class to obtain a server
// IP addressess and related information.

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

namespace Mssc.Services.ConnectionManagement
{

class TestIPAddress
{

/**
* The IPAddresses method obtains the selected server IP address information.
* It then displays the type of address family supported by the server and its
* IP address in standard and byte format.
**/
private static void IPAddresses(string server)
{
try
{
System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding();

// Get server related information.
IPHostEntry heserver = Dns.GetHostEntry(server);

// Loop on the AddressList
foreach (IPAddress curAdd in heserver.AddressList)
{

// Display the type of address family supported by the server. If the
// server is IPv6-enabled this value is: InternNetworkV6. If the server
// is also IPv4-enabled there will be an additional value of InterNetwork.
Console.WriteLine("AddressFamily: " + curAdd.AddressFamily.ToString());

// Display the ScopeId property in case of IPV6 addresses.
if(curAdd.AddressFamily.ToString() == ProtocolFamily.InterNetworkV6.ToString())
Console.WriteLine("Scope Id: " + curAdd.ScopeId.ToString());

// Display the server IP address in the standard format. In
// IPv4 the format will be dotted-quad notation, in IPv6 it will be
// in in colon-hexadecimal notation.
Console.WriteLine("Address: " + curAdd.ToString());

// Display the server IP address in byte format.
Console.Write("AddressBytes: ");

Byte[] bytes = curAdd.GetAddressBytes();
for (int i = 0; i < bytes.Length; i++)
{
Console.Write(bytes[i]);
}

Console.WriteLine("\r\n");

}

}
catch (Exception e)
{
Console.WriteLine("[DoResolve] Exception: " + e.ToString());
}
}

// This IPAddressAdditionalInfo displays additional server address information.
private static void IPAddressAdditionalInfo()
{
try
{
// Display the flags that show if the server supports IPv4 or IPv6
// address schemas.
Console.WriteLine("\r\nSupportsIPv4: " + Socket.SupportsIPv4);
Console.WriteLine("SupportsIPv6: " + Socket.SupportsIPv6);

if (Socket.SupportsIPv6)
{
// Display the server Any address. This IP address indicates that the server
// should listen for client activity on all network interfaces.
Console.WriteLine("\r\nIPv6Any: " + IPAddress.IPv6Any.ToString());

// Display the server loopback address.
Console.WriteLine("IPv6Loopback: " + IPAddress.IPv6Loopback.ToString());

// Used during autoconfiguration first phase.
Console.WriteLine("IPv6None: " + IPAddress.IPv6None.ToString());

Console.WriteLine("IsLoopback(IPv6Loopback): " + IPAddress.IsLoopback(IPAddress.IPv6Loopback));
}
Console.WriteLine("IsLoopback(Loopback): " + IPAddress.IsLoopback(IPAddress.Loopback));
}
catch (Exception e)
{
Console.WriteLine("[IPAddresses] Exception: " + e.ToString());
}
}

public static void Main(string[] args)
{
string server = null;

// Define a regular expression to parse user's input.
// This is a security check. It allows only
// alphanumeric input string between 2 to 40 character long.
Regex rex = new Regex(@"^[a-zA-Z]\w{1,39}$");

if (args.Length < 1)
{
// If no server name is passed as an argument to this program, use the current
// server name as default.
server = Dns.GetHostName();
Console.WriteLine("Using current host: " + server);
}
else
{
server = args[0];
if (!(rex.Match(server)).Success)
{
Console.WriteLine("Input string format not allowed.");
return;
}
}

// Get the list of the addresses associated with the requested server.
IPAddresses(server);

// Get additonal address information.
IPAddressAdditionalInfo();

Console.ReadLine();
}

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
美好且泰然的仓鼠2
2009-03-16 · TA获得超过2703个赞
知道小有建树答主
回答量:1259
采纳率:0%
帮助的人:1272万
展开全部
你是把它村成String类型,然后通过长度判断,IPv4的长度最多只有15位,IPv6有39位。
如果你用的是其它类型,可以给我留言
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式