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

      }
    }

    申明

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

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

  • 相关阅读:
    Web API 强势入门指南
    毫秒必争,前端网页性能最佳实践
    Windbg Extension NetExt 使用指南 【3】 ---- 挖掘你想要的数据 Managed Heap
    Windbg Extension NetExt 使用指南 【2】 ---- NetExt 的基本命令介绍
    Windbg Extension NetExt 使用指南 【1】 ---- NetExt 介绍
    WCF : 修复 Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service 问题
    透过WinDBG的视角看String
    Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”
    企业IT管理员IE11升级指南【17】—— F12 开发者工具
    WCF : 如何将NetTcpBinding寄宿在IIS7上
  • 原文地址:https://www.cnblogs.com/Athrun/p/1289308.html
Copyright © 2011-2022 走看看