(2)在static void Main ( string [ ] args ) { }中添加如下代码:
//定义一个字符串型的变量,用来保存主机的名称。
string server = null ;
// 定义了一个用户输入的规则。
// 用来检查用户的输入。
// 他只允许用户输入2 ~ 40个字符长度的字符串。
Regex rex = new Regex ( @ \" ^ [ a – z A – Z ] \\ w { 1 , 39 } $ \" ) ;
if ( args . Length < 1) //如果输入的字符长度小于1 。
{
//如果没有主机名称被作为程序的参数输入,
// 那么就一当前主机的名称作为默认的主机.
server = Dns . GetHostName ( ) ; //使用Dns类的GetHostName方法得到主机名称,并保存在server变量中。
Console . WriteLine ( \" Using current host : \" + server ) ; //使用Console类的WriteLine方法,在控制面板中输出信息。
}
else //如果输入的字符长度大于1 。
{
server = args [ 0 ] ; //得到参数中的值,并保存在server变量中。
if ( ! ( rex . Match ( server ) ) . Success ) //如果输入的格式不对。
{
Console . WriteLine ( \" Input string format not allowed . \" ) ; //显示提示信息。
return ;
} // 设置显示所用的文字类型。
System . Text . ASCIIEncoding ASCII = new System . Text . ASCIIEncoding ( ) ;
// 得到主机相关信息。
IPHostEntry heserver = Dns . Resolve ( server ) ;
//列举主机地址列表
foreach (IPAddress curAdd in heserver . AddressList )
{
// 显示主机所支持的地址协议簇类型.
// 如果这个主机所支持的地址协议簇类型是IPv6 - enabled ,那么它的值为: InternNetworkV6 .
// 如果这个主机所支持的地址协议簇类型也是IPv4 - enabled ,那么它的值为 InterNetwork.
Console . WriteLine ( \" AddressFamily : \" + curAdd . AddressFamily . ToString ( ) ) ;
// 显示IPV6 地址中的ScopeId 属性 .
if ( curAdd . AddressFamily . ToString ( ) == ProtocolFamily . InterNetworkV6 . ToString ( ) )
Console . WriteLine ( \" Scope Id : \" + curAdd . ScopeId . ToString ( ) ) ;
// 使用标准格式显示主机的IP地址.
// 如果是IPv4格式将被显示为点分格式。
// 如果是IPv6格式将被现实为冒号分割的十六进制方式.
Console . WriteLine ( \" Address : \" + curAdd . ToString ( ) ) ;
// 按字节格式显示主机的IP地址。
Console . Write ( \" AddressBytes : \" ) ;
Byte[] bytes = curAdd . GetAddressBytes ( ) ;
for (int i = 0 ; i < bytes . Length ; i + + )
{
Console . Write ( bytes [ i ] ) ;
}
Console . WriteLine ( \" \\ r \\ n \" ) ;
}
// 显示主机是否支持IPv4和IPv6。
Console . WriteLine ( \" \\ r \\ n SupportsIPv4 : \" + Socket . SupportsIPv4 ) ;
Console . WriteLine ( \" SupportsIPv6 : \" + Socket . SupportsIPv6 ) ;
if ( Socket . SupportsIPv6 ) //如果支持IPv6
{
// 显示IPv6种侦听的地址。
Console . WriteLine ( \" \\ r \\ n IPv6Any : \" + IPAddress . IPv6Any . ToString ( ) ) ;
// 显示主机的回送地址.
Console . WriteLine ( \" IPv6Loopback : \" + IPAddress . IPv6Loopback . ToString ( ) ) ;
责任编辑:小草