所以,我正在将一些代码移植到WinRT,并且出于过于自虐而无法解释的原因,我试图移植一些非常非常依赖于WinSock和IPAddress的代码,所以我正在编写自己的实现IPAddress,我坚持WSAStringToAddress,或者更广泛地说,实现IPAddress InternalParse(接受字符串,吐出IPAddress)。
似乎每个人都使用库函数(有充分理由),这些函数在WinRT中似乎并不合理。 (谷歌搜索它作为'面试问题'似乎没有得到任何结果)
有没有人有一个体面的方式去字符串 - > v6和v4的IP地址?
编辑:
这会合理吗?
private static unsafe IPAddress InternalParse(string ipString, bool tryParse)
{
HostName hn = new HostName(ipString);
IPAddress ipAddr = new IPAddress(GetBytes(hn.ToString()));
return ipAddr;
{
private static byte[] GetBytes(string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}