C#网络应用编程,实验2:IP地址转换和域名解析练习

简介: C#网络应用编程,实验2:IP地址转换和域名解析练习

实验2:IP地址转换和域名解析练习

1.通过本实验,复习本教材各章例子里的前端主界面和子页面的实现。
2、通过本实验,熟悉和掌握IPAddress类、IPEndPoint类、IPHostEntry类、DNS类的使用。

1、创建一个WPF应用程序项目

2、将App.xaml中的Application.Resources节内容改为

在这里插入图片描述

3、修改MainWindow.xaml及代码隐藏类

MainWindow.xaml

在这里插入图片描述

MainWindow.xaml.cs主要内容

在这里插入图片描述

4、用鼠标右键单击项目,选择【添加】-【新建文件夹】命令,在项目中添加一个名为Examples的文件夹。

5、用鼠标右键单击Examples文件夹,选择【添加】-【页】命令,在该文件夹下添加一个名为Page1.xaml的页。之后再按同样方法添加页Page2.xaml和Page3.xaml。

6、修改Page1.xaml的核心代码

在这里插入图片描述

Page1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Net;
using System.Net.Sockets;

namespace 实验1_WPF练习.Examples
{
    /// <summary>
    /// Page1.xaml 的交互逻辑
    /// </summary>
    public partial class Page1 : Page
    {
        public Page1()
        {
            InitializeComponent();
        }

        private void btn_Click(object sender, RoutedEventArgs e)
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("获取www.cctv.com的所有IP地址:");
            try
            {
                IPAddress[] ips = Dns.GetHostAddresses("www.cctv.com");
                foreach (IPAddress ip in ips)
                { sb.AppendLine(ip.ToString()); }
            }
            catch (Exception ex)
            { MessageBox.Show(ex.Message, "获取失败"); }
            string hostName = Dns.GetHostName();
            sb.AppendLine("获取本机所有IP地址:");
            IPHostEntry me = Dns.GetHostEntry(hostName);
            foreach (IPAddress ip in me.AddressList)
            {
                if (ip.AddressFamily == AddressFamily.InterNetwork)
                { sb.AppendLine("IPv4:" + ip.ToString()); }
                else if (ip.AddressFamily == AddressFamily.InterNetworkV6)
                { sb.AppendLine("IPv6:" + ip.ToString()); }
                else { sb.AppendLine("其他:" + ip.ToString()); }
            }
            IPAddress localip = IPAddress.Parse("::1"); //IPv6回路测试地址
            Output(sb, localip);
            IPAddress localip1 = IPAddress.Parse("127.0.0.1");//IPv4回路测试地址
            Output(sb, localip1);
            textBlock1.Text = sb.ToString();
        }
        private static void Output(StringBuilder sb, IPAddress localip)
        {
            IPEndPoint iep = new IPEndPoint(localip, 80);
            if (localip.AddressFamily == AddressFamily.InterNetworkV6)
            { sb.Append("IPv6端点: " + iep.ToString()); }
            else { sb.Append("IPv4端点: " + iep.ToString()); }
            sb.Append(",端口 " + iep.Port);
            sb.Append(",地址 " + iep.Address);
            sb.AppendLine(",地址族 " + iep.AddressFamily);
        }


    }
}

结果

在这里插入图片描述

目录
相关文章
|
11月前
|
运维 网络协议 网络安全
Kali虚拟机间搭建iodine DNS隧道实验指南
本指南介绍如何在两台Kali虚拟机间使用iodine搭建DNS隧道。通过服务端(192.168.1.44)与客户端(192.168.1.36)配置,利用DNS查询建立虚拟局域网,实现受限网络下的隐蔽通信。包含环境准备、命令详解、连通性测试及故障排查,助你快速掌握DNS隧道技术原理与实践应用。(238字)
3076 7
|
监控 安全 网络安全
深入解析PDCERF:网络安全应急响应的六阶段方法
PDCERF是网络安全应急响应的六阶段方法,涵盖准备、检测、抑制、根除、恢复和跟进。本文详细解析各阶段目标与操作步骤,并附图例,助读者理解与应用,提升组织应对安全事件的能力。
2973 89
|
网络协议 安全 Devops
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
705 4
|
机器学习/深度学习 数据可视化 PyTorch
深入解析图神经网络注意力机制:数学原理与可视化实现
本文深入解析了图神经网络(GNNs)中自注意力机制的内部运作原理,通过可视化和数学推导揭示其工作机制。文章采用“位置-转移图”概念框架,并使用NumPy实现代码示例,逐步拆解自注意力层的计算过程。文中详细展示了从节点特征矩阵、邻接矩阵到生成注意力权重的具体步骤,并通过四个类(GAL1至GAL4)模拟了整个计算流程。最终,结合实际PyTorch Geometric库中的代码,对比分析了核心逻辑,为理解GNN自注意力机制提供了清晰的学习路径。
1034 7
深入解析图神经网络注意力机制:数学原理与可视化实现
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
676 15
|
缓存 边缘计算 安全
阿里云CDN:全球加速网络的实践创新与价值解析
在数字化浪潮下,用户体验成为企业竞争力的核心。阿里云CDN凭借技术创新与全球化布局,提供高效稳定的加速解决方案。其三层优化体系(智能调度、缓存策略、安全防护)确保低延迟和高命中率,覆盖2800+全球节点,支持电商、教育、游戏等行业,帮助企业节省带宽成本,提升加载速度和安全性。未来,阿里云CDN将继续引领内容分发的行业标准。
934 7
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
存储 缓存 Java
Java 并发编程——volatile 关键字解析
本文介绍了Java线程中的`volatile`关键字及其与`synchronized`锁的区别。`volatile`保证了变量的可见性和一定的有序性,但不能保证原子性。它通过内存屏障实现,避免指令重排序,确保线程间数据一致。相比`synchronized`,`volatile`性能更优,适用于简单状态标记和某些特定场景,如单例模式中的双重检查锁定。文中还解释了Java内存模型的基本概念,包括主内存、工作内存及并发编程中的原子性、可见性和有序性。
580 5
Java 并发编程——volatile 关键字解析
|
云安全 人工智能 安全
阿里云网络安全体系解析:如何构建数字时代的"安全盾牌"
在数字经济时代,阿里云作为亚太地区最大的云服务提供商,构建了行业领先的网络安全体系。本文解析其网络安全架构的三大核心维度:基础架构安全、核心技术防护和安全管理体系。通过技术创新与体系化防御,阿里云为企业数字化转型提供坚实的安全屏障,确保数据安全与业务连续性。案例显示,某金融客户借助阿里云成功拦截3200万次攻击,降低运维成本40%,响应时间缩短至8分钟。未来,阿里云将继续推进自适应安全架构,助力企业提升核心竞争力。
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
2335 30

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS