• 四、IP地址转换


      IP地址与端口

      TCP/IP(传输控制协议/网际协议)不是一个协议,而是一组协议的总称,包括IP、TCP、UDP、ICMP、ARP等。它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据交换格式以及传送方式。

      

      IP地址:是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围内惟一的标识符。

      一个IP地址主要由两部分组成:网络地址和主机地址。

      网络地址由因特网权力机构分配,主机地址由各个网络的管理员统一分配。

      IP地址编制方案有两种:IPV4和IPV6

       IPV4:二进制表示共32位(4个字节)  

      IPV6:二进制表示共128位(16个字节)

      在IPV4编制方案中,一般使用点分十进制表示法表示IP地址。例如:192.168.1.1

      子网掩码:子网掩码用于屏蔽IP地址的一部分以区别网络标识和主机标识。

      把所有的网络位(二进制)用1来标识,主机位用0来标识。

      例如:对于IP地址192.168.0.X,可以将子网掩码设置为255.255.255.0,对于IP地址192.168.0.X,其网络标示部分为192.168.0;主机标示为:X

      端口:IP地址仅仅能够具体标识到某台主机,而端口则表示与计算机上的哪个进程通信。

      根据IP地址找到是与哪台机器通信,根据端口号找到是与该机器的哪个进程通信。

      (一个进程可能会使用多个端口) 端口地址的范围是十进制的0~65535

      IP地址转换相关类

      IPAddress类(System.Net命名空间下):

      常用IPAddress的 Parse方法将IP地址字符串转换为IPAddress的实例。

      例如:IPAddress ip = IPAddress.Parse(“192.168.1.1”);

      IPAddress类常用属性

      Any 提供一个IPv4地址,指示服务器应侦听所有网络接口上的客户端活动。(等效于0.0.0.0)

      Broadcast 提供IPv4广播地址(等效于255.255.255.255)

      Loopback 表示IPv4回送地址(等效于127.0.0.1)

      None 表示Socket不应侦听客户端活动(不使用任何网络接口)。

      IPv6Any 提供可用的IPv6地址

      IPv6Loopback 表示IPv6回送地址

      IPv6None 提供不使用任何网络接口。

      IPEndPoint类包含了连接到主机上的服务所需的IP地址和端口信息。

      IPEndPoint类常用的构造函数为:

      public IPEndPoint(IPAddress, int); 其中第一个参数指定IP地址,第二个参数指定端口号。

      IPHostEntry类的对象中包含了与主机相关的信息。

      常用属性:

        (1)AddressList属性: 获取或设置与主机关联的IP地址列表,是一个IPAddress类型的数组,包含了指定主机的所有IP地址;

        (2)HostName属性:包含了服务器的主机名。

        (3)Aliases属性包含了与主机关联的别名列表。 在Dns类中,有一个专门获取IPHostEntry对象的方法。  

         例如: IPAddress[] ips = Dns.GetHostEntry(“http://news.sohu.com").AddressList;

      域名解析

      DNS(Domain Name System,域名系统)提供了一系列静态的方法,用于获取提供本地或远程域名等功能,常用方法有:

      (1)GetHostAddresses方法 获取指定主机的IP地址,返回一个IPAddress类型的数组。

        格式为: public static IPAddress[] GetHostAddresses(string hostNameOrAddress);

        例如:IPAddress[] ips=Dns.GetHostAddresses("www.cctv.com");

        注意:如果hostNameOrAddress是IP地址,则不查询DNS服务器,直接返回此地址。

      (2)GetHostEntry方法 在DNS服务器中查询与某个主机名或IP地址关联的IP地址。 当参数为空字符串时,此方法返回本地主机的IPv4地址和主机名。

        例如: IPHostEntry host = Dns.GetHostEntry("");

        listBox1.Items.AddRange(host.AddressList); //本机所有IPv4地址

        listBox1.Items.Add(host.HostName); //本机主机名

      (3) GetHostName方法 获取本机主机名。

        例如:string hostname = Dns.GetHostName();

  • 相关阅读:
    java泛型
    转载:MSIL Instruction Table
    What if your dynamic sql statement is too long?
    自己第一个正儿八经的div+css页面
    bulk insert formatFile格式记录
    日志 20071221(WCF,using keyword)
    C++点滴
    The scripts used to generate a demo "School" database (with data)
    The typical scenarios of using "Insert" in Tsql
    如何生成任意给定区间的随机值序列
  • 原文地址:https://www.cnblogs.com/xchit/p/socket_4.html
Copyright © 2020-2023  润新知