Tag: ipv6

解释System.Net.IPAddress的实例属性

我在理解System.Net.IPAddress类时遇到了一些麻烦,因为我不知道在哪里查找某些属性引用的定义。 具体来说,是什么: IPAddress.IsIPv6LinkLocal IPAddress.IsIPv6Multicast IPAddress.IsIPv6SiteLocal IPAddress.IsIPv6Teredo 我也很乐意接受一个解释这些概念的资源的答案。 MSDN网站certificate不足。

GetHostAddress()不返回IPv6,仅返回IPv4

使用Dns.GetHostAddresses(“fred”)时,它仅返回响应的IPv4地址。 如何获取IPv6地址? 我会用不同的方法吗? Socket.OSSupportsIPv6返回true,IPv6连接正常。 操作系统是Windows 2008 R2,.Net版本是3.5。

通过IPv6获取远程MAC地址

嘿伙计们,我在网上寻找解决方案,但我一无所获! 🙁 是否可以通过IPv6(没有WMI)从同一网络中的另一台PC获取MAC? 使用IPv4很容易(ARP)。 IPv6使用“邻居发现协议”(NDP)来获取MAC地址。 .Net中有没有这方面的方法? 有什么建议? 谢谢你的帮助! 问候 法比安

问题将ipv6转换为ipv4

我在asp.net应用程序中有一些代码需要获取客户端计算机的ipv4地址(用户都在我们自己的网络上)。 最近我们将应用运行的服务器升级到了Windows 2008服务器。 现在,当客户端在较旧的操作系统上时,Request.UserHostAddress代码返回ipv4,而当它们在较新的操作系统(Vista和更高版本)上时,返回ipv6。 因此,依赖于此的function适用于某些客户而非其他客户。 我添加了应该从ipv6转换为ipv4的代码,以尝试解决此问题。 这是来自这个在线教程: http ://www.4guysfromrolla.com/articles/071807-1.aspx。我正在使用dsn.GetHostAddress然后循环返回的IP寻找一个“InterNetwork” foreach (IPAddress IPA in Dns.GetHostAddresses(HttpContext.Current.Request.UserHostAddress)) { if (IPA.AddressFamily.ToString() == “InterNetwork”) { IP4Address = IPA.ToString(); break; } } if (IP4Address != String.Empty) { return IP4Address; } foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName())) { if (IPA.AddressFamily.ToString() == “InterNetwork”) { IP4Address = IPA.ToString(); break; } } return IP4Address; 问题是这对我不起作用。 从ipv4连接的客户端继续返回客户端计算机的正确ipv4 […]

如何检索IP v6子网掩码长度

我正在编写一个必须在Windows 7计算机上获得网络适配器配置的应用程序,就像在Windows网络适配器配置面板中完成一样: 到目前为止,我可以从NetworkInterface.GetAllNetworkInterfaces()获得我需要的所有信息, 除了子网前缀长度 。 我知道可以通过OnLinkPrefixLength从C ++ PMIB_UNICASTIPADDRESS_TABLE检索它,但我试图留在.net中。 我还看了一下Win32_NetworkAdapterConfiguration WMI类,但它似乎只返回IP v4子网掩码。 我也知道一些信息(不是前缀长度,据我所知)在注册表中: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters\Interfaces\{CLSID} 我还使用SysInternals ProcessMon尝试在保存网络适配器设置时获得任何有用的东西但却一无所获…… 那么,有没有什么干净的.NET方法来获得这个价值? (从注册表中获取它不会有问题) 编辑:网关 这与实际问题无关,但对于需要检索整个网络适配器IPv6配置的用户, IPInterfaceProperties.GatewayAdresses属性仅支持IPv4网关。 正如下面的答案评论中提到的,在.NET Framework 4.5之前获取整个信息的唯一方法是调用WMI。

使用C#检查Windows 7上是否启用了IPv6

我正在尝试使用C#编写一个程序,作为我公司的多function工具。 我们在此工具中想要的一件事是确定IPv6是否已启用/绑定到我们的Windows 7计算机上的本地连接网络适配器。 我不是要找一个地址,只是想知道它是在该适配器上启用还是禁用。 我不确定如何编码。 从我在网上找到的,似乎我应该使用System.Net.Configuration和Ipv6Element来检查它是否已启用,但我不知道如何编码它。 我希望能够显示它是否在文本框中启用或禁用,所以我猜我会使用布尔值。 有人能指出我正确的方向吗? 谢谢!

计算子网内的所有地址…用于IPv6

我已经看到很多很棒的C#示例 ,演示了如何将CIDR表示法(例如192.168.0.1/25)中提供的IPv4地址转换为相关范围(192.168.0.1 – 192.168.0.126)。 我的程序需要能够这样做(计算我本地子网中的所有地址),但我也想支持IPv6。 如果我的C#程序具有我所有典型的ipconfig信息(IPv4地址,子网掩码,IPv6地址,链接本地v6地址,默认网关) – 我将如何生成本地子网中所有IPv6地址的列表和将它们输出到控制台?

IP地址是否与本地计算机位于同一子网上(支持IPv6)

有没有人有一些代码可以确定IP地址(IPv4或IPv6)是否与运行应用程序的计算机位于同一子网上? 我已经看到了许多使用IPv4执行此操作的代码示例,但我找不到任何支持IPv6的代码。 编辑: 我不确定我是否理解v4和v6之间的所有差异,所以这里有一点我的问题。 我有一个为Internet客户端和Intranet客户端提供服务的应用程序,也就是说有些客户端与服务器位于同一物理网络上。 所以有时客户端之间有路由器,有时候没有路由器。 使用IPv4,我可以通过检查服务器IP地址和子网的客户端IP地址来确定这一点,所以如果我的服务器的IP和子网掩码分别是: 192.168.123.15 255.255.255.0 并且服务器从192.168.123.100接收客户端请求我知道客户端和服务器之间没有路由器。 但是,如果服务器收到来自192.168.1.100或67.7.23.4的客户端请求,我知道这些客户端和服务器之间存在路由器。 在.Net中,我可以收集客户端和服务器的IP地址(v4和v6)但我找不到IPv6子网掩码。 有没有办法在.Net中收集这些信息,还是我误解了IPv4和IPv6之间有什么区别? 编辑x2: 我在MS connect站点上发布了这个,看看它们是否正在处理,或者是否有原因他们没有将IPv6Mask属性添加到UnicastIPAddressInformation类。 https://connect.microsoft.com/VisualStudio/feedback/details/643031/unicastipaddressinformation-class-has-no-ipv6mask-property 我也在同一时间在MSDN论坛上发布了同样的问题。 1800多个观点,而不是一个回复。 猜猜我不是唯一一个对此感到好奇的人。 http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/dd30e161-9be5-4d70-97c0-22e2756ce953

将IPv6格式化为C#中的int并将其存储在SQL Server中

在IPv4我一直在将IP地址的字符串表示解析为Int32 ,并将它们作为INT存储在SQL Server 。 现在,使用IPv6我试图找出是否有一种标准或可接受的方法来使用C#将IPv6的字符串表示解析为两个Int64 ? 人们如何将这些值存储在SQL Server – 作为BIGINT两个字段?

IIS Request.UserHostAddress返回IPV6(:: 1),即使禁用IPV6也是如此

在我的网卡的属性部分,在Windows Server 2008上,我禁用了IPV6,只启用了IPV4。 但是在ASP.NET中,Request.UserHostAddress返回’:: 1’,即IPV6地址。 有谁知道如何恢复到IPV4?