uin*_*tea 1 c# arrays string byte
我正在创建自己的 DNS 服务器和主机拦截器,我想从 DNS 请求消息中获取主机 byte[]
dns 消息十六进制转储:
e07901000001000000000000057961686f6f03636f6d0000010001
.y...........yahoo.com.....
Run Code Online (Sandbox Code Playgroud)
代码:
e07901000001000000000000057961686f6f03636f6d0000010001
.y...........yahoo.com.....
Run Code Online (Sandbox Code Playgroud)
问题:
yahoo?com?更改为 Encoding.ASCII 或 Encoding.UTF8 无效
Encoding.GetString允许您传入偏移量和计数,因此:GetString(decoded, start, hostLength)Encoding.Default; 那个名字很糟糕 - 它应该被称为Encoding.Wrong:) 找出数据的编码方式(可能是 UTF-8 或 ASCII),然后使用它IndexOf来找到终止'\0';还要考虑如果没有找到你的代码应该做什么至于不寻常的字符:数据包含一个03字节,您会在其中期望.; 检查 DNS 协议规范以查看是否符合预期。03是ETX(文本结束)。除此之外:我不知道。
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |