.Net FrameWork中的網絡操作

Code

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

  }
}

你可能感兴趣的:(framework)