zoukankan      html  css  js  c++  java
  • .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();
        }

      }
    }

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    Java职业生涯规划
    Java类加载器总结
    Java字节流与字符流的区别
    Java堆和栈的区别
    详解Java类的生命周期
    Java编程常见问题汇总
    Java总结输入流输出流
    Java NIO:浅析I/O模型
    perl 处理文件路径的一些模块
    Delphi第三方控件安装卸载指南
  • 原文地址:https://www.cnblogs.com/Athrun/p/1289308.html
Copyright © 2011-2022 走看看