- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个函数,它使用 IPAddress 类返回给定 IP 地址是否有效。我正在测试它,即使我在没有点作为参数的情况下传递“0123456”或“11111”或“99999”,它也会返回有效(真)。我用 VB.net 和 C# 编写了它,结果相同。
// C#
public bool CheckIpAddress(string ipAddr)
{
IPAddress ip = null;
return IPAddress.TryParse(ipAddr,out ip);
}
// VB.net
Public Function CheckIpAddress(ipAddr As String) As Boolean
Dim ip As IPAddress = Nothing
Return Net.IPAddress.TryParse(ipAddr, ip)
End Function
有人能解释一下为什么会这样吗?我已经通过互联网将我的代码与一些资源进行了匹配,没有问题。
最佳答案
IP 地址只是 32 位数字,所以 11111
绝对是一个正确的 IP 地址。 IP 地址中的点只是为了让人们更容易阅读它们。它们不是必需的。
IP addresses are binary numbers, but they are usually stored in text files and displayed in human-readable notations, such as 172.16.254.1 (for IPv4), and 2001:db8:0:1234:0:567:8:1 (for IPv6).
这就是 IPAddress.TryParse
返回 true
的原因。
它甚至在 MSDN 上有描述:IPAddress.Parse
Method
The number of parts (each part is separated by a period) in ipString determines how the IP address is constructed. A one part address is stored directly in the network address. A two part address, convenient for specifying a class A address, puts the leading part in the first byte and the trailing part in the right-most three bytes of the network address. A three part address, convenient for specifying a class B address, puts the first part in the first byte, the second part in the second byte, and the final part in the right-most two bytes of the network address.
还有一个例子(见第一个):
1 -- "65536" 0.0.255.255
2 -- "20.2" 20.0.0.2
2 -- "20.65535" 20.0.255.255
3 -- "128.1.2" 128.1.0.2
关于c# - IPAddress.TryParse 返回不需要的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23193921/
我尝试了以下代码使我的代码在双堆栈模式下工作。不幸的是,它没有在双栈模式下打开端口。 var listener = new TcpListener(IPAddress.Any, 2222); list
我昨天问了一个关于将 HEX 字符串转换为 IP 的问题,并在这里得到了答案:C# convert hex into ip 问题是,当我使用函数时 var ip = new IPAddress(lon
我一直在尝试从 API 结果中解析 IP 地址,其中 IPv4 地址的四个部分中的每一个都带有前缀 0(零)。像这样: 127.000.000.001 而不是 127.0.0.1 我在尝试解析 192
我正在使用 pythons ipaddress 模块,我试图只获取第一个可用主机,而不是所有可用主机 下面给了我所有的主机,当我试图索引它时,我得到了下面的错误。 有没有其他方法可以只获得第一个可用的
我正在编写一个 Xamarin.Forms 应用程序,并将一个 PCL 项目添加到我在 Visual Studio 2013 中的主要解决方案中。我在使用多个标准 .net 类时遇到问题。这是一个列表
先介绍一些背景。我在局域网中的每台机器上都安装了 .net 客户端代理。他们也在同一个局域网上与我的中央服务器 [网站] 交互。 弄清楚哪些机器可以相互通信对我的网站来说很重要。例如,如果不配置路由器
我有一个服务器应用程序,我试图自动将 IP 地址设置为从机器动态分配的 IP 地址中获取的地址。到目前为止,我已经得到了这个来获取 IPv4,但它作为 IPAddress[] 类型返回,我在转换为 s
我有一个服务器应用程序,我试图自动将 IP 地址设置为从机器动态分配的 IP 地址中获取的地址。到目前为止,我已经得到了这个来获取 IPv4,但它作为 IPAddress[] 类型返回,我在转换为 s
在代表 IPv6 地址的 IPAddress 实例上调用 ToString() 方法,我得到了一些地址后带有百分号的文本。这是not documented .什么意思? 返回值如下所示:fe80::1
您好,是否可以为 jdbc 瘦驱动程序提供机器名称而不是 ipaddress。或者它会在运行时产生某种错误。我尝试使用机器名称而不是本地主机,它正在工作。因此,如果我们可以提供机器名称而不是 ipad
我有一个网络应用程序正在运行,让我们说下面的 IP:10.101.10.101。网络应用程序名称是示例,因此整个 URL 如下:https://10.101.10.101/example 现在尝试使用
我想在变量中获取我的计算机的 ipaddress此语句打印我的计算机的 ipaddress但我想把它分配给一个变量我如何从 inet_ntoa(inaddrr(ifr_addr.sa_data)) 中
好吧,这是一个小问题……但仍然令人恼火。 在 MSVS 2008 .NET 3.5 中,我的 IPAdress.Address 很长,我只是使用了 if(subnet == subnetmask.Ad
我正在使用 IPAddress.TryParse 来验证 IP 地址,但是如果我使用 if (IPAddress.TryParse("192.168.1.009", out ip) 它失败了,但是 i
我有一个函数,它使用 IPAddress 类返回给定 IP 地址是否有效。我正在测试它,即使我在没有点作为参数的情况下传递“0123456”或“11111”或“99999”,它也会返回有效(真)。我用
这个问题在这里已经有了答案: Extract ip addresses from Strings using regex (4 个答案) 关闭 4 年前。 我有一个包含多个 IP 地址的大字符串。
我想知道如何从 DhcpInfo.ipAddress 获取人类可读的 IP 地址?棘手的是,它是一个整数,显然你不能用整数存储 IP 地址。那么,IP 地址是如何编码的,它可以存储在一个 int 中?
我可以检查一个 ip 是否在私有(private)网络中吗?
我正在使用 System.Diagnostics.Eventing.Reader.EventLogWatcher 类 Hook 安全事件日志,并且我正在观察 2008 服务器机器上的事件 ID 462
在 .NET IPAddress.HostToNetworkOrder() 中只能接收一个 long int(64 位)并返回一个 long。这适用于 IPv4,但 IPv6 地址是 128 位的。我
我是一名优秀的程序员,十分优秀!