网络编程获取本机IP地址和指定域名IP地址_第1页
网络编程获取本机IP地址和指定域名IP地址_第2页
网络编程获取本机IP地址和指定域名IP地址_第3页
网络编程获取本机IP地址和指定域名IP地址_第4页
网络编程获取本机IP地址和指定域名IP地址_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网络编程技术实验报告实验名称实验一 网络编程基础训练实验报告要求: 1.实验目的 2.实验要求 3.实验环境 4.实验作业 5.问题及解决 6.思考问题 7.实验体会【实验目的】掌握Wireshark的基本用法,掌握netstat的基本用法,能够使用这些工具对网络应用程序的传输过程进行捕获、观察和状态分析;了解Windows Sockets API的基本函数功能,掌握Windows Sockets的编程环境配置,掌握网络程序设计的基本过程。【实验要求】1、下载安装Wireshark,熟悉捕获、查看、过滤、查找等基本方法,对用户飞秋文件传输、文字聊天等行为进行网络通信过程分析。 2、熟悉nets

2、tat命令,查看用户使用网络应用程序过程中对系统网络状态的改变。3、使用Windows Sockets的API函数获得本机的IP地址。 4、使用Windows Sockets的API函数获得给定域名的IP地址。【实验环境】1. 飞秋数据包的捕获用Wireshark;2. Windows8自带命令提示符;3. VS 2012编写程序。【实验作业】NO.1:飞秋文件传输、文字聊天等行为分析1. 数据包捕获:2. 飞秋文件传输、文字聊天的网络通信过程分析:1) 通过广播方式,查询局域网内所有主机的MAC地址,采用ARP协议,解析目标IP地址为30的主机:2) IP地址为10.

3、104.113.130的主机回应请求,告知本机的MAC地址从而无连接的通信建立了。传输层协议为UDP。3) IP地址为30的主机给请求端发送数据(首部为8字节;数据部分72字节):以太网层使用的是MAC地址网络层传输用的鉴别机制为IP地址。NO.2:netstat命令测试系统网络状态的改变 netstat命令: a) 显示所有连接和侦听的端口:b) 应用程序对系统网络状态的改变:NO.3:利用Windows Socket的API函数获取本机IP和指定域名的IP地址:利用C#网络编程提供的API,完成获取本机IP地址和指定域名IP地址的任务。代码及执行情况,见Src文件和

4、exe文件。using System;using System.Collections.Generic;using System.Text;using System.Net;using System.Net.Sockets;using System.Runtime.InteropServices;namespace WindowsSocket_1 class Program static void Main(string args) Console.WriteLine(请输入要查询域名); string dnsName=Console .ReadLine(); IsNetConnecting

5、netconnect = new IsNetConnecting(); bool NetConnect = netconnect.IsConnected(); Program winsocket=new Program(); if (NetConnect = true) string localIP = winsocket.GetHostIP(); Console.WriteLine(本机IP地址: + localIP); winsocket.Resolve(dnsName); for (int i = 0; i winsocket.IPLength; i+) Console.WriteLin

6、e(对应域名的IP地址 + (i + 1) + 为: + winsocket.m_arrayIPsi); else Console.WriteLine(当前网络连接不可用。无法获取本机IP地址和指定域名的IP地址); Console.Read(); #region 获取主机IP地址 public string GetHostIP() string strHostName = Dns.GetHostName(); /获取本地计算机名称 Console.WriteLine(本地计算机名: + strHostName); /由本地计算机名称获取本机IP地址 IPHostEntry ipEntry =

7、 Dns.GetHostEntry(strHostName); return ipEntry.AddressList2.ToString(); /返回本机IP地址 Console.ReadKey(); #endregion #region 获取已知域名的IP地址 IPAddress m_arrayIPs; public void Resolve(string s_host) IPHostEntry ip = Dns.GetHostByName(s_host); m_arrayIPs = ip.AddressList; public IPAddress thisint nIndex get re

8、turn m_arrayIPsnIndex; public int IPLength get return m_arrayIPs.Length; #endregion public class IsNetConnecting #region 判断网络连接 DllImport(wininet.dll) private extern static bool InternetGetConnectedState(out int connectionDescription, int reservedValue); public bool IsConnected() int I = 0; bool sta

9、te = InternetGetConnectedState(out I, 0); return state; #endregion 【实验中出现问题及解决方法】i. 在完成指定域名的IP获取时,有些域名能得到多个IP地址,刚开始以为是个Bug,经过上网查了些资料才知道,有些域名是挂载在多个服务器上的,因而对应多个IP地址。ii. 当没有网络时,本机就没有互联网IP地址,也无法去获取对应域名的IP地址。因而我进行了网络连接的判断,无网络连接时直接弹出提示。【思考问题】i. 利用Windows Socket的API函数可以获得多个地址,(例如:);但是只有一个是互联网的IP地址,因而对获得的IP地址做了简单筛选。ii. 无网络连接时,也可以得到所谓IP地址()显然这个并不是真实的IP地址,应该是以本机为服务器所分配的IP地址。iii. 飞秋的网络通信过程为:为得到要发起会话的IP地址对应的主机的MAC地址,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论