草庐IT

ip_bytes

全部标签

c# - IP 地址验证

我正在重构我的代码并想使用IPAddress.TryParse验证字符串是否为有效IPv4地址的方法,而不是使用正则表达式:publicstaticboolIsIPv4(stringvalue){IPAddressaddress;if(IPAddress.TryParse(value,outaddress)){if(address.AddressFamily==AddressFamily.InterNetwork){returntrue;}}returnfalse;}我的单元测试现在失败了,因为这些输入值返回true并被解析为以下IPAddress对象:value="0.0.0.0"-

c# - 背靠背 for 循环中的 int、short、byte 性能

(背景:WhyshouldIuseintinsteadofabyteorshortinC#)为了满足我自己对使用“适当大小”整数与“优化”整数的优缺点的好奇心,我编写了以下代码,这些代码强化了我之前对.Net中的int性能的看法(并对此进行了解释在上面的链接中)这是针对int性能而不是short或byte进行了优化。DateTimet;longa,b,c;t=DateTime.Now;for(intindex=0;index这在......方面给出了大致一致的结果~950000~2000000~1700000这符合我的预期。然而,当我尝试像这样为每种数据类型重复循环时......t=D

c# - 将 bool 转换为 byte 的最快方法是什么?

将bool转换为byte的最快方法是什么?我想要这个映射:False=0,True=1注意:我不想使用任何if语句或其他条件语句。我不希望CPU停止或猜测下一条语句。更新:对于那些想了解这个问题的人。此示例显示如何从代码中减少两个if语句。byteA=k>9;//Ifitwaspossible(k>9)==0||1c[i*2]=A*(k+0x37)-(A-1)*(k+0x30); 最佳答案 使用不安全代码这个方法非常快。启用优化后,它比条件运算符快约30%。boolinput=true;bytevalue=*((byte*)(&in

c# - 为什么从 byte 到 sbyte 的转换会为优化代码提供错误的值?

安装NUnit3后,可以使用以下代码示例重现该问题。[TestFixture]publicclassSByteFixture{[Test]publicvoidTest(){vardata=newbyte[]{0xFF};sbytex=-128;data[0]=(byte)x;byteb1=data[0];varb2=(sbyte)b1;Assert.AreEqual(b1.ToString(),"128");Assert.AreEqual(b2.ToString(),"-128");}}该项目应该是一个类库,因为在控制台应用程序中它是不可复制的。应该启用优化,即csproj文件中的以下

C# - 将不安全的 byte* 转换为 byte[]

我有一个unsafebyte*指向已知长度的native字节数组。如何将其转换为byte[]?指向零终止native字符串的unsafesbyte*可以很容易地转换为C#string,因为有一个conversionconstructor为此目的,但我找不到将byte*转换为byte[]的简单方法。 最佳答案 如果ptr是您的不安全指针,并且数组的长度为len,您可以像这样使用Marshal.Copy:byte[]arr=newbyte[len];Marshal.Copy((IntPtr)ptr,arr,0,len);但我确实想知道您

C#.NET : Convert Icon to byte[] and back again

如何在System.Drawing.Icon类型和byte[]之间进行转换?我正在寻找可以(希望)在.NET2中工作的简单方法。 最佳答案 你通过MemoryStream,基本上:publicstaticbyte[]IconToBytes(Iconicon){using(MemoryStreamms=newMemoryStream()){icon.Save(ms);returnms.ToArray();}}publicstaticIconBytesToIcon(byte[]bytes){using(MemoryStreamms=ne

c# - 如何在 HttpWebRequest 中更改原始 IP

我在分配了5个IP的服务器上运行此应用程序。我使用HttpWebRequest从网站获取一些数据。但是当我建立连接时,我能够指定从5个IP中的哪一个建立连接。HttpWebRequest是否支持这个?如果不能,我可以从它继承一个类来改变它的行为吗?我在这里需要这样的想法。我现在的代码是这样的:System.Net.WebRequestrequest=System.Net.WebRequest.Create(link);((HttpWebRequest)request).Referer="http://application.com";using(System.Net.WebRespon

c# - 在 C# 中,如何解析主机的 IP 地址?

如何动态获取服务器(您要连接的PC)的IP地址? 最佳答案 System.Dns.GetHostEntry可用于将名称解析为IP地址。 关于c#-在C#中,如何解析主机的IP地址?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1029749/

c# - 如何在 C# 中将 CIDR 转换为网络和 IP 地址范围?

我一直在四处寻找一些C#代码来将CIDR表示法(72.20.10.0/24)中的网络转换为IP地址范围,但运气不佳。stackoverlow上有一些关于CIDR的线程,但似乎没有任何C#代码并且完全涵盖了我需要的内容。所以我决定自己做,我不希望代码依赖System.Net进行此版本中的任何转换。也许它可能对某人有帮助。引用资料:What'sthebestwaytoconvertfromnetworkbitcounttonetmask?来自http://www.laffeycomputer.com/whatmask.html的“Whatmask”C代码用法:uintstartIP,end

c# - Linq/Lambda OrderBy Delegate for List<string> of IP Addresses

给定Listips=newList();我需要按逻辑顺序对IP地址列表进行排序(即“192.168.0.2”出现在“192.168.0.100”之前)。当前(并且正确地,按字母顺序排列)如果列表包含:192.168.0.1192.168.0.2192.168.0.10192.168.0.200ips.OrderBy(p=>p)返回:192.168.0.1192.168.0.10192.168.0.2192.168.0.200 最佳答案 你需要做一个比较器:(已测试)classIPComparer:IComparer{publicin