标签: networking

如果你可以在浏览器中访问低于 TCP 的级别

我正在学习网络协议,发现接近最低级别的是原始以太网协议:

以太网:这是使用您的 MAC 地址将数据发送到本地网络上的另一台计算机的基本协议。这是其余所有内容的构建块,因为如果您想与外界通信,则需要将数据发送到路由器。

其之上是互联网协议 (IP),其中 TCP 和 UDP 就是示例。TCP 之上是 HTTP,或者可以在 SSL 之上放置 HTTP(因此 HTTPS)。

浏览器似乎只允许您深入到 IP 级别(用于正常消息传递连接的 TCP,用于视频等内容的 UDP)。但我想知道是否有可能比浏览器中的更低。如果没有,那么想知道为什么不。如果是这样,那么可能是一个例子。

browser ip networking tcp ethernet

1
推荐指数
1
解决办法
1021
查看次数

树莓派,在wifi和热点之间切换

我正在为 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/。输入相同的命令似乎不起作用。

我尝试过的是:

  • Raspberry 设置为热点
  • 停止 dnsmasq 和 hostapd
  • 编辑/etc/dhcpcd.conf(删除静态IP配置)
  • 重新启动 dhcpd

我可以看到树莓派已连接到正确的 wifi,但显然我没有互联网连接,无法下载任何软件包。

也许还有更多关于 iptables 的事情要做,但我真的对此了解不多,而且我不喜欢搞乱我的所有配置。

关于在两种“模式”之间切换的程序有什么想法吗?

干杯

networking wifi raspberry-pi hotspot

1
推荐指数
1
解决办法
4823
查看次数

在 python 上查找 Windows 和 Linux 的默认网关地址

我想将我的默认网关保存在一个变量中以供将来使用,例如打印它,或向它发送 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

python networking gateway

1
推荐指数
1
解决办法
5443
查看次数

如何在 PyShark 中将数据包解码为decode_as

在 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)

python networking python-3.x tshark pyshark

1
推荐指数
1
解决办法
3348
查看次数

使用 Python 检测可用的网络适配器

我想检测连接到 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 连接的适配器的最佳方法是什么?

python networking psutil

1
推荐指数
1
解决办法
5987
查看次数

存储缓冲区并保存在触发器上的网络捕获工具集

是否有一个简单的工具或实用程序可以用来缓冲最后 3 分钟的网络捕获,如果事件发生可能是通过 GPIO 触发器或 UDP 消息我将最后 3 分钟和接下来的 1 分钟写入磁盘?我们的网络冻结发生在 40 分钟到 14 小时之间,我想捕获检测到的事件时间周围的网络流量,以更好地了解情况。我过去曾使用过 tcpdump 和wireshark,但总是手动触发捕获的开始和停止,我需要自动停止时间,并希望避免记录一堆不相关的数据。如果重要的话,我们的大多数开发环境都使用 Ubuntu 18.04。

此时,如果需要,我们不限于任何语言或从头开始构建工具。

ubuntu networking tcpdump wireshark

1
推荐指数
1
解决办法
214
查看次数

RabbitMQ 连接在本地主机上工作但不能通过网络

我正在尝试让 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 …

c# networking rabbitmq

1
推荐指数
1
解决办法
1万
查看次数

裸机 x86 组件中的网络

我开始了编写玩具操作系统的旅程,并且正在寻找资源和书籍来帮助我。

我一直无法弄清楚的一项功能是网络。我能找到的所有关于 x86 程序集中网络的教程都是基于 Unix/Linux 网络系统调用的。

如何在裸机 x86 组装中完成它?

networking assembly operating-system osdev

1
推荐指数
1
解决办法
1117
查看次数

无法删除 GKE 入口规则

我已经创建了规则。现在我在 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

1
推荐指数
2
解决办法
4021
查看次数

来自其他实例和本地电脑的 docker swarm join 连接错误

我给了这样的角色。

环境:甲骨文云。开放端口: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)

networking docker swarm docker-swarm

1
推荐指数
1
解决办法
3924
查看次数