请问,我获取的本地IP地址为什么不对

问题描述

IPHostEntryiph=Dns.GetHostEntry(Dns.GetHostName());IPAddressio=iph.AddressList[0];foreach(IPAddressipiniph.AddressList){Console.WriteLine(ip.ToString());}Console.ReadKey();最后的输出结果是:fe80::118a:2f6d:22cb:ff7d%112002:6ebb:37df::6ebb:37df169.254.255.125110.187.55.223怎么会有4个结果呢?而且通过“好123”的IP地址查询,只有最后那个能对上,请问,是什么原因?如果在程序中需要本地IP地址,该怎么取舍呢?

解决方案

解决方案二:
IPAddress[]addrIP=Dns.GetHostAddresses(Dns.GetHostName());Console.WriteLine(addrIP[0].ToString());

解决方案三:
通常addressList[]所得到的列表就是当前的IP地址;如果当前是拨号上网的话addressList[0].ToString()就是本地IP地址;addressList[1].ToString()就是上网地址。如果当前是使用[EnterNet300]拨号上网的话addressList[1].ToString()就是本地IP地址;addressList[0].ToString()就是上网地址。如果程序只能够检测到只有一个IP地址的话,证明当前电脑没有在线!
解决方案四:
//以下两个是IPv6的地址fe80::118a:2f6d:22cb:ff7d%112002:6ebb:37df::6ebb:37df//以下两个是IPv4的地址//这是你本地连接的地址,估计你没有给网卡配置本地IP,所以Windows分配了一个保留地址给你的网卡169.254.255.125//这是你通过PPPoE获得的公网IP110.187.55.223
解决方案五:
一般本机IP用127.0.0.1或localhost,至于为啥最后一个对,因为最后一个是你拨号产生的,也就是最后产生的,先排除非IPV4格式的地址,然后取最后一个IPV4的地址即可。
解决方案六:
一个内网IP一个外网IP。
解决方案七:
ipv4ipv6局域网公网
解决方案八:
我以前也碰到了这个问题是因为机器开启了ipv4ipv6之类的东西后来把居然把整整一大堆IP地址全部存到数据库了没有过多去研究这个关注这个问题也许自己的问题也会在这个帖子里解决!
解决方案九:
引用7楼的回复:

我以前也碰到了这个问题是因为机器开启了ipv4ipv6之类的东西后来把居然把整整一大堆IP地址全部存到数据库了没有过多去研究这个关注这个问题也许自己的问题也会在这个帖子里解决!

哦...............
解决方案十:
孤陋寡闻。我的一个电脑装过VMWare虚拟,于是它就虚拟出来3个网卡,于是我的电脑仅ipv4MAC和IP地址就有5个。我现在用的笔记本至少有4个ipv4地址,因为有4个网络适配器。一个是我的蓝牙驱动虚拟出的网卡,一个是普通rj45以太网卡适配器,一个是无线网络适配器,一个是windows虚拟WIFI适配器。我的另外一个笔记本有更多的是适配器。.......不知道一台机器可以有很多ipv4地址,真是应该好好学学电脑知识了,不然连居委会的大妈都不如了。
解决方案十一:
引用楼主的回复:

如果在程序中需要本地IP地址,该怎么取舍呢?

如果有人告诉你“写一个tcp服务监听要使用iph.AddressList[0]”的话,你直接“喷”它好了。有个实习生告诉我某个培训学校的视频上的老师就是这样写的。作为服务,要使用IPAddress.Any,这是常识。
解决方案十二:
该回复于2012-04-23 09:23:15被版主删除
解决方案十三:
霸气引用10楼的回复:

引用楼主的回复:如果在程序中需要本地IP地址,该怎么取舍呢?如果有人告诉你“写一个tcp服务监听要使用iph.AddressList[0]”的话,你直接“喷”它好了。有个实习生告诉我某个培训学校的视频上的老师就是这样写的。作为服务,要使用IPAddress.Any,这是常识。

解决方案十四:
IPAddress[]addrIP=Dns.GetHostAddresses(Dns.GetHostName());Console.WriteLine(addrIP[0].ToString());
解决方案十五:
每个网卡都有二个地址,一个局域网地址和一个外网地址,索引号相对较小的是局域网地址
解决方案:
该回复于2012-04-23 15:55:57被版主删除
解决方案:
你这里获取的有IP4和IP6的版本,必须要判断一下,InterNetwork是IP版本4的地址。然后在获取了IP4的地址后要一个break,不然还是会继续把IP6的也获取了。希望对你有帮助。IPHostEntryiph=Dns.GetHostEntry(Dns.GetHostName());IPAddressio=iph.AddressList[0];for(inti=0;i<iph.AddressList.Length;i++){if(iph.AddressLis[i].AddressFamily==AddressFamily.InterNetwork){stringsvrAddress=iph.AddressList[i].ToString();Console.WriteLine(svrAddress.ToString());break;}}Console.ReadKey();有什么不明白的可以在这里一起探讨一下。

时间: 2024-11-08 18:30:50

请问,我获取的本地IP地址为什么不对的相关文章

WPF 获取本地IP地址

/// <summary> /// 获取本地IP地址信息 /// </summary> void GetAddressIP() { ///获取本地的IP地址 string AddressIP = string.Empty; foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList) { if (_IPAddress.AddressFamily.ToString() == &quo

Android开发实现在Wifi下获取本地IP地址的方法

本文实例讲述了Android开发实现在Wifi下获取本地IP地址的方法.分享给大家供大家参考,具体如下: 代码核心介绍: WifiManager类提供了对设备Wifi功能的管理,包括Wifi开关的打开和关闭,IP地址获取等等,早期的Android版本甚至支持对于IP的设置.在这里仅介绍其简单的一个小应用--获取IP地址. 首先先添加Uses-Permission:CHANGE_WIFI_STATE,WAKE_LOCK和ACCESS_WIFI_STATE.代码如下(AndroidManifest.

python批量生成本地ip地址的方法

 这篇文章主要介绍了python批量生成本地ip地址的方法,实例分析了Python实现生成本地IP地址并绑定到网卡上的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了python批量生成本地ip地址的方法.分享给大家供大家参考.具体分析如下: 这段代码用于在本地计算机上生成本地ip地址绑定到网卡,生成的是一个bat的批处理文件,运行此批处理文件,可以通过ipconfig查看 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Win7系统手动设置获取DNS与ip地址的方法

  用户在操作使用win7系统时,有时候连接网络过程提示自动获取DNS与ip地址,这样的结果是浏览器无法连接使用.为什么会出现这种情况呢?遇到这种情况我们应该怎么办呢?其实我们可以通过开始菜单进入网络中心手动设置获取DNS与ip地址,下面小编就跟大家一起分享下具体的获取方法! 方法如下: 1.在win7系统的右下角任务栏中找到网络连接图标,右击该图标选择"打开网络和共享中心"选项; 2.在打开的界面中找到本地连接,点击进入属性窗口; 3.双击进入Internet 协议版本 4; 4.勾

python批量生成本地ip地址的方法_python

本文实例讲述了python批量生成本地ip地址的方法.分享给大家供大家参考.具体分析如下: 这段代码用于在本地计算机上生成本地ip地址绑定到网卡,生成的是一个bat的批处理文件,运行此批处理文件,可以通过ipconfig查看 #!/usr/bin/python2.7 # -*- coding: utf-8 -*- # Filename: AddIPAliases.py import re,sys,socket,struct # 1. 判断IP地址是否合法: 2. 判断用户输入的IP是否在Clas

python在windows和linux下获得本机本地ip地址方法小结_python

本文实例总结了python在windows和linux下获得本机本地ip地址方法.分享给大家供大家参考.具体分析如下: python的socket包含了丰富的函数和方法可以获得本机的ip地址信息,socket对象的gethostbyname方法可以根据主机名获得本机ip地址,socket对象的gethostbyname_ex方法可以获得本机所有ip地址列表 第一种方法:通过socket.gethostbyname方法获得 import socket localIP = socket.gethos

java-如何找到本地IP地址?

问题描述 如何找到本地IP地址? 我想创建一个程序来检测网络中所有的ip4地址. 代码如下: try { Enumeration e = NetworkInterface.getNetworkInterfaces(); while(e.hasMoreElements()) { NetworkInterface n = (NetworkInterface) e.nextElement(); Enumeration ee = n.getInetAddresses(); while(ee.hasMor

asp.net中c#获取本机IP地址实例代码

例1  代码如下 复制代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; namespace CSharpTest {     class Program     {         static void Main(string[] args)         {             Console.Write(new Progr

Delphi 7中快速获取本机IP地址

朋友们在用Delphi编程序的时候,常常碰到需要在程序中获取自己的IP地址的情况.在以往的版本中,可以通过编写一段代码或函数实现这一功能.但有了Delphi 7,这个工作可以更简化了.利用控件只需一句代码,就可以非常方便地实现这一功能. 新建一Project1,在form1中添加控件statusbar1(Win32页)和控件IdIPWatch1(Indy Misc页).接着设置好控件属性:在statusbar1的panels中添加0-TStatusPanel和1-TStatusPanel两项:I