我正在学习网络协议,发现接近最低级别的是原始以太网协议:
以太网:这是使用您的 MAC 地址将数据发送到本地网络上的另一台计算机的基本协议。这是其余所有内容的构建块,因为如果您想与外界通信,则需要将数据发送到路由器。
其之上是互联网协议 (IP),其中 TCP 和 UDP 就是示例。TCP 之上是 HTTP,或者可以在 SSL 之上放置 HTTP(因此 HTTPS)。
浏览器似乎只允许您深入到 IP 级别(用于正常消息传递连接的 TCP,用于视频等内容的 UDP)。但我想知道是否有可能比浏览器中的更低。如果没有,那么想知道为什么不。如果是这样,那么可能是一个例子。
我正在为 POC 演示开发树莓派。我的树莓派需要设置为热点,按照本教程一切顺利:https ://www.raspberrypi.org/documentation/configuration/wireless/access-point.md
但是我无法在“普通”wifi 和热点之间轻松切换。例如,我需要恢复正常行为以将软件包下载到树莓派。我发现: http: //sirlagz.net/2013/01/22/script-starting-hostapd-when-wifi-goes-down/。输入相同的命令似乎不起作用。
我尝试过的是:
我可以看到树莓派已连接到正确的 wifi,但显然我没有互联网连接,无法下载任何软件包。
也许还有更多关于 iptables 的事情要做,但我真的对此了解不多,而且我不喜欢搞乱我的所有配置。
关于在两种“模式”之间切换的程序有什么想法吗?
干杯
我想将我的默认网关保存在一个变量中以供将来使用,例如打印它,或向它发送 ping...我希望代码可以在 Windows 和 Linux 上运行,所以我编写了以下代码:
import os
if os.name == "Linux":
dgw = os.system('ip r | grep default | awk {"print $3"}')
print dgw
if os.name == "Windows":
dgw = os.system('ifconfig | findstr /i "Gateway"')
print dgw
Run Code Online (Sandbox Code Playgroud)
但 dgw 变量没有保存我的默认网关......
蟒蛇2.7
在 Wireshark GUI 中,我们可以将 UPD 数据包解码为 RTP,并且可以在 tshark 中使用以下命令完成相同的操作 d <layer type>==<selector>,<decode-as protocol>
我怎样才能在 PyShark 中做同样的事情?我尝试执行以下操作
import pyshark
cap = pyshark.FileCapture("Test.pcap", display filter='udp', decode_as='rtp')
for pkt in cap:
print(pkt)
Run Code Online (Sandbox Code Playgroud)
但它显示以下错误
AttributeError: 'str' object has no attribute 'items'
Run Code Online (Sandbox Code Playgroud) 我想检测连接到 DHCP 并从中获取 IP 的可用网络接口。我正在使用以下脚本来生成可用适配器的列表。
import psutil
addrs = psutil.net_if_addrs()
all_network_interfaces = addrs.keys()
available_networks = []
for value in all_network_interfaces:
if addrs[value][1][1].startswith("169.254"):
continue
else:
available_networks.append(value)
print(available_networks)
Run Code Online (Sandbox Code Playgroud)
以 169.254 开头的适配器是使用自动专用 IP 寻址 (APIPA) 的适配器,因此我想将它们过滤掉。当我使用以太网电缆连接时,此脚本会显示相关适配器,如果我在以太网仍然连接的情况下也通过 WiFi 连接,则会将 WiFi 添加到列表中。然而,在断开与 WiFi 的连接后,WiFi 适配器仍然保留该 IP,并且仍然存在于列表中。我认为这是我的适配器卡的问题(可能是功能问题)。绕过此问题并仅获取具有 DHCP 连接的适配器的最佳方法是什么?
是否有一个简单的工具或实用程序可以用来缓冲最后 3 分钟的网络捕获,如果事件发生可能是通过 GPIO 触发器或 UDP 消息我将最后 3 分钟和接下来的 1 分钟写入磁盘?我们的网络冻结发生在 40 分钟到 14 小时之间,我想捕获检测到的事件时间周围的网络流量,以更好地了解情况。我过去曾使用过 tcpdump 和wireshark,但总是手动触发捕获的开始和停止,我需要自动停止时间,并希望避免记录一堆不相关的数据。如果重要的话,我们的大多数开发环境都使用 Ubuntu 18.04。
此时,如果需要,我们不限于任何语言或从头开始构建工具。
我正在尝试让 RabbitMQ 服务器正常工作。在本教程中,本地主机连接不是问题。但是每当我尝试通过网络执行相同的操作时,我都无法让应用程序连接到代理。
发送:
var factory = new ConnectionFactory() { };
factory.HostName = "192.168.1.52";
factory.Port = 5672;
factory.UserName = "guest";
factory.Password = "guest";
factory.VirtualHost = "/";
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
string message = "Hello World!";
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: "",
routingKey: "hello",
basicProperties: null,
body: body);
Console.WriteLine(" [x] Sent {0}", message);
}
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
RabbitMQ 实例运行在另一台 PC 上,IP …
我开始了编写玩具操作系统的旅程,并且正在寻找资源和书籍来帮助我。
我一直无法弄清楚的一项功能是网络。我能找到的所有关于 x86 程序集中网络的教程都是基于 Unix/Linux 网络系统调用的。
如何在裸机 x86 组装中完成它?
我已经创建了规则。现在我在 Ingress 描述中看到这条消息:
Error during GC: error running load balancer garbage collection routine:
googleapi: Error 400: Invalid value for field 'forwardingRule': 'k8s2-fr-nbxe481u-default-kaf.XXX-XXXX.XX-3r69b1ge'. Must be a match of regex '[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}', invalid
Run Code Online (Sandbox Code Playgroud)
尝试在 GKE Web 控制台中删除此选项后,没有任何反应。
kubectl挂在:
kubectl delete ingress this_ingress
networking google-cloud-platform google-kubernetes-engine nginx-ingress
我给了这样的角色。
环境:甲骨文云。开放端口:TCP 2377、UDP TCP 7946、UDP 4786
实例 A:管理员 实例 B:工人 本地 PC:工人
在 A 上使用此 cli 初始化集群模式
docker swarm init --advertise-addr <A's IP>
Run Code Online (Sandbox Code Playgroud)
B得到了
Error response from daemon: rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: Error while dialing dial tcp A's IP:2377: connect: no route to host"
Run Code Online (Sandbox Code Playgroud)
本地电脑已获得
Error response from daemon: rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: …Run Code Online (Sandbox Code Playgroud)