IP地址

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

网络地址由因特网权力机构分配,主机地址由各个网络的管理员统一分配。
IP地址编制方案有两种:IPV4和IPV6IPV4:二进制表示共32位(4个字节)IPV6:二进制表示共128位(16个字节)

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

端口

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

根据IP地址找到是与哪台机器通信,根据端口号找到是与该机器的哪个进程通信。 (一个进程可能会使用多个端口)

端口地址的范围是十进制的0~65535

IPAddress类

IPAddress类(System.Net命名空间下):常用IPAddress的
Parse方法将IP地址字符串转换为IPAddress的实例。
例如:IPAddress ip = IPAddress.Parse(“192.168.1.1”);
构造函数有:

 (1)public IPAddress (byte[] address)byte[] iparray = new byte[] { 143,24,20,36 };IPAddress localIP = new IPAddress(iparray);(2)public IPAddress (long newAddress)long ip = 0x2414188f;IPAddress localIP = new IPAddress(ip);

IPEndPoint

IPEndPoint类包含了连接到主机上的服务所需的IP地址和端口信息。
IPEndPoint类常用的构造函数为:
public IPEndPoint(IPAddress, int);
其中第一个参数指定IP地址,第二个参数指定端口号。

IPAddress localip = IPAddress.Parse ("192.168.1.1");
IPEndPoint iep = new IPEndPoint (localip,65000);
listBoxInfo.Items .Add ( "IP地址:" + iep.Address);
listBoxInfo.ltems.Add ("IP端口:" +iep.Port);

IPHostEntry

IPHostEntry类的对象中包含了与主机相关的信息。常用属性:
(1)AddressList属性:获取或设置与主机关联的IP地址列表,是一个IPAddress类型的数组,包含了指定主机的所有IP地址;
(2)HostName属性:包含了服务器的主机名。
(3)Aliases属性包含了与主机关联的别名列表。
在Dns类中,有一个专门获取IPHostEntry对象的方法。
例如:IPAddress[] ips = Dns.GetHostEntry(“http://news.sohu.com").AddressList;

DNS

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

示例

/// <summary>/// 获取本机IP信息/// </summary>private void buttonLocalIP_Click(object sender, EventArgs e){listBoxLocalInfo.Items.Clear();string name = Dns.GetHostName();listBoxLocalInfo.Items.Add("本机主机名:" + name);IPHostEntry me = Dns.GetHostEntry(name);listBoxLocalInfo.Items.Add("本机所有IP地址:");foreach (IPAddress ip in me.AddressList){listBoxLocalInfo.Items.Add(ip);}IPAddress localip = IPAddress.Parse("127.0.0.1");IPEndPoint iep = new IPEndPoint(localip, 80);listBoxLocalInfo.Items.Add("IP端点: " + iep.ToString());listBoxLocalInfo.Items.Add("IP端口: " + iep.Port);listBoxLocalInfo.Items.Add("IP地址: " + iep.Address);listBoxLocalInfo.Items.Add("IP地址族: " + iep.AddressFamily);listBoxLocalInfo.Items.Add("可分配端口最大值: " + IPEndPoint.MaxPort);listBoxLocalInfo.Items.Add("可分配端口最小值: " + IPEndPoint.MinPort);}/// <summary>/// 获取远程主机信息/// </summary>private void buttonRemoteIP_Click(object sender, EventArgs e){this.listBoxRemoteInfo.Items.Clear();IPHostEntry remoteHost = Dns.GetHostEntry(this.textBoxRmoteIP.Text);IPAddress[] remoteIP = remoteHost.AddressList;IPEndPoint iep;foreach (IPAddress ip in remoteIP){iep = new IPEndPoint(ip, 80);listBoxRemoteInfo.Items.Add(iep);}}

C# 网络编程 IP地址转换相关推荐

  1. 网络编程------IP地址,端口号,套接字,网络字节序

    IP地址         IP地址是IP协议中,用来标识网络中的唯一一台主机的地址.IP协议有两个版本IPv4,IPv6.在IPv4中,IP地址是一个4字节的32位的整数.在IPv6中,IP地址是一个 ...

  2. java什么是网络接口_java 网络编程 -- IP地址的表示与网络接口信息的获取(InetAddress和NetworkInterface)...

    使用java进行网络程序的开发,可以说是一件令人愉悦的事情,对于用惯了C++网络接口编程的人来说,当他们首次使用Java开发网络应用程序,会发现java开发网络应用是如此的简单,甚至仅用几分钟时间,您 ...

  3. 网络编程-IP地址、端口号、网络字节序

    IP地址.端口号.网络字节序 本文中部分名词可见: 协议.TCP/IP模型.数据包封装与分用 一.IP地址 1. 简单认识 IP协议有两个版本:IPv4和IPv6. (1)IP地址在IP协议中,用来标 ...

  4. c语言编程IP地址转换,用C语言将二进制转换为IP地址

    根据需要将任意32位二进制转换为IP地址. 输入:11111111 输出:255.0.0.0 思路:将输入的二进制数以每8个为一个单位转化为十进制 . #include int bin_dec(int ...

  5. 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client

     1  Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端 ...

  6. 【Linux网络编程学习】预备知识(网络字节序、IP地址转换函数、sockaddr数据结构)

    此为牛客Linux C++课程和黑马Linux系统编程笔记. 1. 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分. 磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小 ...

  7. java转换ip地址格式转换_Java编程IP地址和数字相互转换代码示例

    最近才知道,将ip地址转换成十进制.八进制.十六进制同样可以访问网站. IP转为数字(第二种算法.用左移.按位或实现.效率更高.): public long ipToLong(String ipAdd ...

  8. linux的基础知识——网络字节序转化,ip地址转换函数,sockaddr数据结构

    1.网络字节序 TCP/IP协议规定,网络数据流采用大端字节序,即低地址高字节.为了使网络程序具有可移植性,使得同样的C代码在大端和小端计算机上编译后都能正常运行,可以调用以下库函数做网络字节序和主机 ...

  9. 防火墙关键技术(包过滤、应用代理、网络ip地址转换)

    目录 数据包过滤 包过滤优点 包过滤缺点 应用代理 应用代理优点 应用代理缺点 网络IP地址转换(NAT) 数据包过滤 网络上的数据都是以包为单位进行传输的,每一个数据包中都会包含一些特定的信息,如数 ...

最新文章

  1. Python经典面试题100道(附PDF下载地址)
  2. %config InlineBackend.figure_format=svg#矢量图设置
  3. 【Android 安装包优化】WebP 应用 ( 4.0 以下兼容 WebP | Android Studio 中使用 libwebp.so 库向下兼容版本 | libwebp 库测试可用性 )
  4. 优化Nginx服务的安全配置
  5. 用C++设计一个不能被继承的类
  6. 系统、应用监控的缜密思路,堪称性能瓶颈的克星
  7. 美的摇头风扇FW40-8A摇头拉线断了修复方案
  8. VisualBasic 版 (精华区)
  9. android-verticalseekbar——Android可视化SeekBar类库
  10. django简介及环境搭建
  11. 阿里的 RocketMQ 如何让双十一峰值之下0故障
  12. 【C++入门】C++ 运算符的重载
  13. Illustrator 教程,如何在 Illustrator 中使用钢笔工具创建作品?
  14. K-means算法对图像处理(matlab)
  15. 本科毕设研究记录(一)————小样本综述
  16. 微信小程序开发之视频上传
  17. 英语12种记忆单词的方法
  18. LED,LCD,CRT,TFT,TFD,STN显示屏说明
  19. 食物语服务器什么时候维护,食物语无法登录游戏怎么办_食物语无法登录游戏解决方法介绍_游戏吧...
  20. 泰坦尼克数据分析与预处理

热门文章

  1. Linux popen函数的使用总结
  2. Part2_事务与分布式事务原理与实现_沈询_fixed ver—在线播放—优酷网,视频高清在线观看...
  3. ActiveMQ开发与简介
  4. 漫画算法python篇_有点意思!当漫画遇上算法后(儿童节福利)
  5. 用uml设计java应用程序_用UML设计Java应用程序之需求分析
  6. android gif第三方,Gboard个性化GIF定制功能终于登陆Android客户端
  7. 与思考和励志的名言警句有哪些
  8. mongodb里的集合数据迁移到mysql库
  9. js--关闭当前网页
  10. HDUOJ 4847 Wow! Such Doge!