C# socket学习--IPAddress、IPEndPoint、DNS
来源:互联网 发布:nginx docker 负载均衡 编辑:程序博客网 时间:2024/05/18 08:45
一、IP地址操作类
1、IPAddress类
在该类中有一个Parse()方法,可以把点分的十进制IP表示转化成IPAddress类,方法如下:
IPAddress address = IPAddress.Parse(“192.168.0.1”);
IPAddress提供4个只读字段
Any 用于代表本地系统可用的任何IP地址
Broadcase 用于代表本地网络的IP广播地址 (广播地址(BroadcastAddress)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机)
Loopback 用于代表系统的回送地址 (回送地址(127.x.x.x)(通常为127.0.0.1)即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络传输。)
None用于代表系统上没有网络接口
其中IPAddress.Any常用来表示本机上所有的IP地址,这对于socket服务进行侦听时,方便使用,不用对每个IP进行侦听了。而IPAddress.Broadcase可用来UDP的IP广播。
1、IPAddress类
在该类中有一个Parse()方法,可以把点分的十进制IP表示转化成IPAddress类,方法如下:
IPAddress address = IPAddress.Parse(“192.168.0.1”);
IPAddress提供4个只读字段
Any 用于代表本地系统可用的任何IP地址
Broadcase 用于代表本地网络的IP广播地址 (广播地址(BroadcastAddress)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机)
Loopback 用于代表系统的回送地址 (回送地址(127.x.x.x)(通常为127.0.0.1)即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络传输。)
None用于代表系统上没有网络接口
其中IPAddress.Any常用来表示本机上所有的IP地址,这对于socket服务进行侦听时,方便使用,不用对每个IP进行侦听了。而IPAddress.Broadcase可用来UDP的IP广播。
2、IPEndPoint类
我们可以通过2种构造方法来创建IPEndPoint类:
a、IPEndPoint(long address, int port)(ipv6)
b、IPEndPoint(IPAddress address, int port)(ipv4)
属性
Address 获取或设置终结点的 IP地址。
AddressFamily 获取网际协议 (IP)地址族。(替代 EndPoint.AddressFamily。)
Port 获取或设置终结点的端口号。
字段
MaxPort
指定可以分配给 Port属性的最大值。MaxPort值设置为 0x0000FFFF。此字段为只读。
MinPort
指定可以分配给Port 属性的最小值。此字段为只读。
我们可以通过2种构造方法来创建IPEndPoint类:
a、IPEndPoint(long address, int port)(ipv6)
b、IPEndPoint(IPAddress address, int port)(ipv4)
属性
Address 获取或设置终结点的 IP地址。
AddressFamily 获取网际协议 (IP)地址族。(替代 EndPoint.AddressFamily。)
Port 获取或设置终结点的端口号。
字段
MaxPort
指定可以分配给 Port属性的最大值。MaxPort值设置为 0x0000FFFF。此字段为只读。
MinPort
指定可以分配给Port 属性的最小值。此字段为只读。
IPEndPoint其实就是一个IP地址和端口的绑定,可以代表一个服务,用来Socket通讯。
二、DNS相关类
DNS类有四个静态方法,来获取主机DNS相关信息,
1、GetHostName()
通过Dns.GetHostName()可以获得本地计算机的主机名
2、GetHostByName()
根据主机名称,返回一个IPHostEntry 对象:
IPHostEntry GetHostByName(string hostName)
其中IPHostEntry把一个DNS主机名与一个别名和IP地址的数组相关联,包含三个属性:
AddressList:一个IPAddress对象的数组
Aliases:一个字符串对象数组
HostName:一个用于主机名的字符串对象
3、GetHostByAddress()
类似于GetHostByName(),只不过这里的参数是IP地址,而不是主机名,也返回一个IPHostEntry对象。
IPHostEntry GetHostByAddress(IPAddress address)
IPHostEntry GetHostByAddress(string address)
DNS类有四个静态方法,来获取主机DNS相关信息,
1、GetHostName()
通过Dns.GetHostName()可以获得本地计算机的主机名
2、GetHostByName()
根据主机名称,返回一个IPHostEntry 对象:
IPHostEntry GetHostByName(string hostName)
其中IPHostEntry把一个DNS主机名与一个别名和IP地址的数组相关联,包含三个属性:
AddressList:一个IPAddress对象的数组
Aliases:一个字符串对象数组
HostName:一个用于主机名的字符串对象
3、GetHostByAddress()
类似于GetHostByName(),只不过这里的参数是IP地址,而不是主机名,也返回一个IPHostEntry对象。
IPHostEntry GetHostByAddress(IPAddress address)
IPHostEntry GetHostByAddress(string address)
4、Resolve()
当我们不知道输入的远程主机的地址是哪种格式(主机名或IP地址)时,用以上二种方法来实现,我们可能还要通过判断客户输入的格式,才能正确使用,但dns类提供一更简单的方法Resolve(),该方法可以接受主机名格式或IP地址格式的任何一种地址,并返回IPHostEntry对象。
当我们不知道输入的远程主机的地址是哪种格式(主机名或IP地址)时,用以上二种方法来实现,我们可能还要通过判断客户输入的格式,才能正确使用,但dns类提供一更简单的方法Resolve(),该方法可以接受主机名格式或IP地址格式的任何一种地址,并返回IPHostEntry对象。
0 0
- C# socket学习--IPAddress、IPEndPoint、DNS
- C#中IPAddress类/Dns类/IPHostEntry类/IPEndPoint用法简介
- C# 中IPAddress和IPEndPoint的意思
- C#网络编程基本字段---IPAddress、IPEndPoint
- IPAddress,IPEndPoint,IPHostEntry介绍
- IPAddress,IPEndPoint,IPHostEntry介绍
- Dns & IPAddress
- winform网络编程之DNS类,IPAddress类和IPEndPoint类以及如何获取本地ip地址
- IPEndPoint(IPAddress.Any, 0)的意思
- 使用IPAddress类与IPEndPoint类
- IPAddress类与Dns类
- C#中的IP和IPEndPoint
- IPADDRESS
- IpAddress
- .NET Socket TCP/UDP程式入門基礎《IPEndPoint類別》
- IPAddress类/Dns类/IPHostEntry类用法简介
- C# 获取内网或公网IPAddress
- .NET Socket TCP/UDP程式入門基礎《IPAddress類別》
- Swift3.0 popToViewController 的使用
- 2016 NCPC Game Rank(模拟)
- c++实现日期类(class Date) 构造函数 拷贝构造 操作符重载(输入输出 比较操作 算数运算 自增自减)
- Leetcode #343 Integer Break
- 优化php效率,提高php性能的一些方法:
- C# socket学习--IPAddress、IPEndPoint、DNS
- Python 包管理工具解惑
- 页面自动适应屏幕的宽度
- caa二次开发的安装
- phpStorm更新后配置svn无法使用
- JAVA SSH ----Struts数据校验
- 阿里天池odps_SQL查看更多数据
- 联想小新i2000装win10教程(u盘装系统)
- 学习设计模式(2)——MVC模式