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

      }
    }

    申明

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

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

  • 相关阅读:
    Jupsh_flutter Android 收不到消息 / 排查不出请根据第 9 点说明提供信息
    angular表单 Dom获取表单值以及双向数据绑定
    angular中的组件以及组件中的模板合成
    Flutter开发的app进行设备判断是Ios还是android
    Java的封装
    GCD编程 之 略微提高篇
    多线程基础(六)GCD基础
    我遇到的CocoaPods的问题(也许后期会解决,持续更新)
    iOS之通过PaintCode快速实现交互动画的最方便方法 未解问题
    多线程基础(五)NSThread线程通信
  • 原文地址:https://www.cnblogs.com/Athrun/p/1289308.html
Copyright © 2011-2022 走看看