我正在编写一个程序来接收dns消息并回复一个适当的答案(一个只回复A记录的简单dns服务器).
但是当我收到消息时,它与1035 RFC中描述的格式不同.
例如,这是nslookup生成的dns查询:
'\xe1\x0c\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x06google\x03com\x00\x00\x01\x00\x01'
Run Code Online (Sandbox Code Playgroud)
我知道1035 RFC中定义的dns头和位,但为什么它应该是十六进制?
我应该将它们视为十六进制数或它们的utf-8等价物吗?
我的回答是否也应该有这种格式?
我正在寻找一种技术,我可以通信(基本上发送一些命令)到远程PC(可能与互联网连接),但我不知道它的IP地址.那我怎么能这样做呢.我愿意为Windows XP/7平台找到这个.如果有人有任何想法.请分享.
这里还要补充一点:接收方不应该有任何客户端应用程序进行此通信.
这是end-to-end principle维基百科的一部分
端到端连接是因特网的属性,其允许网络的所有节点将分组发送到网络的所有其他节点,而不需要中间网络元件来进一步解释它们.
但是你应该注意到路由器(中间设备)总是在端节点之间.所以,end-to-end principle如上所述,不仅如此NAT,而且通常网络end-to-end principle也会中断.
这是真的吗?如果没有,请解释为什么,通常网络路由器不会破坏端到端的原则.
谢谢 :)
如果IPv4有问题并且我想从std :: istream中提取IP和ICMP头,首先我得到最初的20个字节,然后检查IPv4头中提供的头长度是否大于20个字节以便提取任何选项.下一个字节是ICMP数据包.使用IPv4标头内携带的标头长度值,我可以看到IP标头的预期大小.
但是如何获得IPv6标头的确切大小?IPv6标头内部有一个有效负载值,包括标头扩展的大小以及更高级别的数据,如ICMP.我需要知道IPv6头的大小,包括头扩展但没有更高级别的数据,以便知道ICMPv6头在std :: istream中的起始位置.
谢谢!
我试图创建一个类,该类是一个可以存储在数组中的线程,这将使我更容易处理从客户端到服务器的用户输入.
这是我的PongPlayerThread
package Pong;
import java.net.*;
import java.io.*;
public class PongPlayerThread extends Thread
{
private Socket socket = null;
private String pongData = "";
public PongPlayerThread()
{
//clear
}
public PongPlayerThread(Socket socket, int id, String data)
{
//super("PongPlayerThread");
pongData = data;
this.socket = socket;
}
public void passData(String data)
{
pongData = data;
}
public void run()
{
try
{
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
while(true)
{
out.println(pongData);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在在我的服务器上的这一行,客户端可以连接 …
这是一个我很久以前就一直试图解决的问题.这并没有达到特定的语言,尽管对于那些拥有指定字节序的VM的人来说并不是真的有益.我知道,就像使用套接字使用TCP/IP发送数据的99.9999%的人一样,该协议指定了传输元素的字节顺序,如目标地址,端口等.我不知道的是,它是否要求有效载荷采用特定格式以防止不兼容.
例如,假设我开发了一个不是表示层的协议,而且由于小端设备现在拥有的优势,我决定使它成为小端(例如播放器的位置等等)以小端顺序).例如,用于游戏引擎的网络模块,其中延迟很重要并且字节转换将花费相当多的时间.当然,协议相关的地址,端口和所有数据都将以big endian的形式指定,这是强制性的,我在谈论有效载荷,而且只是那个.
在大端机器上,该协议是否可以开箱即用(当然,一旦收到传输,就会根据需要翻译内容)?或者,由于数据的顺序不同,IP协议的校验和或类似的东西会被计算错误,如果不使用raw_sockets,程序员也无法控制它们?
由于整个解释可能会产生误导,请随时要求澄清.
非常感谢你.
例如,这是一个ISP分配的ip范围.
91.105.0.0/17
46.109.0.0/16
194.8.16.0/21
194.8.24.0/22
194.8.40.0/23
194.8.43.0/24
195.122.0.0/19
195.13.128.0/17
80.232.128.0/17
81.198.0.0/16
84.237.128.0/17
87.110.0.0/16
194.8.9.0/24
194.8.12.0/23
195.114.32.0/19
195.2.96.0/19
62.85.0.0/17
87.246.144.0/20
87.246.160.0/19
78.84.0.0/16
193.200.224.0/24
95.68.0.0/17
Run Code Online (Sandbox Code Playgroud)
如果我是正确的,对于这个范围193.200.224.0/24,有从193.200.224.1到193.200.224.255的ip
和87.110.0.0/16从87.110.1.1到87.110.255.255
但是0/17,0/19如何计算呢?
我需要帮助编写php函数来自动生成所有ip的
我将所有范围放到数据库然后运行php脚本并为每个范围生成ip列表.
目的是关闭所有这些?我希望我的国家/地区所有ip adreses,所以我可以更多地分析我的网站访问者.
感谢名单
我想知道这个角色的含义是什么:<I在python中.
正如我在许多使用套接字的python脚本中看到的那样,他们使用这个字符作为"pack"和"unpack"参数,因此对这个角色的解释将是很好的.
假设光速~186000英里/秒,距离地球最远的地方最远可以离开地球~16,000英里,这意味着光到达地球上的任何一点并返回<= ~172毫秒.那么为什么ping时间超过这个?
我目前正在编写一个需要更改Windows代理设置的C#代理程序.每个在线指南仅更改LAN连接的代理设置(即NAT后面).这是一个问题,因为中国的许多用户(我的目标受众)直接将PPPoE连接从他们的调制解调器连接到他们的计算机并使用PPPoE软件拨号到DSL(是的,这是非常安全的,所有监听端口都可以看到世界,但事情就是这样).
我该如何更改DSL代理?这很令人担忧,因为查看我的用户统计信息~20%的人没有自动更改代理设置.