标签: networking

IPv6 区域解析

首先,我对 IPv6 的细节还不熟悉,所以如果这只是对 IPv6 路由的误解,我不会感到惊讶。考虑一下我正在运行 P2P 覆盖网络的情况,其中一部分位于单个 LAN 的边界内。该 LAN 内的节点具有以下链路本地地址(如其自身所见):

  • 对等 1 fe80::225:4bff:fea8:e200%en0
  • 对等 2 fe80::225:4bff:fea8:e201%eth1
  • 对等 3 fe80::225:4bff:fea8:e202%en1

现在,假设每个对等点都能够通过某种方式发现其他对等点,并拥有彼此的地址。每个对等点都在侦听一个端口,例如 12345。如果对等点 1 想与对等点 2 通信,他们可能会尝试使用 URI:

tcp://[fe80:225:4bff:fea8:e201%eth1]:12345

这就是我遇到问题的地方。对等点 1 没有名为“eth1”的适配器,因此它不知道该 IPv6 区域标识符。如果从地址中删除区域 ID,则对等体 1 无法确定必须使用哪个适配器来联系主机。

那么问题来了:是否有可能以标准方式解析 IPv6 地址的区域标识符?如果没有,我是否必须向系统查询所有区域标识符,并尝试依次使用每个区域标识符连接到该地址,直到成功为止?或者尝试使用链接本地地址进行通信从一开始就是一个愚蠢的想法?

networking ipv6

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

如何从 IRC 服务器获取网络名称?

我认为这是不可能的,但是 mIRC 可以获取网络的名称,即使用户没有在服务器列表中指定该名称。我尝试使用数据包嗅探器来查看连接上是否发送了一条发送网络名称的消息,但我没有看到任何内容。

需要向用户显示网络名称并确定多个服务器是否属于同一网络。我希望这是其他人已经解决的问题。

irc networking

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

FTP.delete(filename) from ftplib 错误

当我尝试ftp.delete()从 ftplib 使用时,它会引发error_perm, resp:

>>> from ftplib import FTP
>>> ftp = FTP("192.168.0.22")
>>> ftp.login("user", "password")
'230 Login successful.'
>>> ftp.cwd("/Public/test/hello/will_i_be_deleted/")
'250 Directory successfully changed.'
>>> ftp.delete("/Public/test/hello/will_i_be_deleted/")
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ftplib.py", line 520, in delete
resp = self.sendcmd('DELE ' + filename)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ftplib.py", line 243, in sendcmd
return self.getresp()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ftplib.py", line 218, in getresp
raise error_perm, resp
ftplib.error_perm: 550 Delete operation failed.
Run Code Online (Sandbox Code Playgroud)

该目录存在,并且“用户”有足够的权限删除该文件夹。

该站点实际上是一个支持ftp的NAS(WD MyBookWorld)。 …

python ftp networking ftplib delete-file

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

TcpListener.Start() 上的 SocketException

我正在尝试制作一个基本的客户端/服务器程序,但是当我启动 TcpListener 时,它给了我SocketException:The requested address is not valid in its context.
实际上有一个返回我的公共 IP 的方法,并且它与 ipconfig 结果匹配,因此下面的 IP 地址字符串不能是问题。当然,出于安全原因,下面显示的 IP 不是我的真实 IP。我打开了下面的端口供一般使用。
无论如何,Not valid in context很模糊,所以我不确定这意味着什么。

这是我的代码(对于 TcpListener):

ServerIn = new TcpListener(IpAddress.Parse("100.100.100.100"), 8000);
ServerIn.Start();
Run Code Online (Sandbox Code Playgroud)

提前致谢。

c# sockets networking socketexception

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

/proc/net/tcp 和 /proc/pid/net/tcp 有什么区别

我可以假设 /proc/net/tcp 是所有 /proc/pid/net/tcp 的总和吗?如果不是,有什么区别?根/系统 tcp 会话是否单独管理?

linux networking android

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

C - inet_pton() 不产生网络字节顺序

我对这个inet_pton()功能感到困惑。根据手册页

该函数将字符串src转换为 af 地址族中的网络地址结构,然后将网络地址结构复制到dst。af 参数必须是 AF_INET 或 AF_INET6。dst以网络字节顺序写入。

因此该函数产生一个网络字节顺序值。但我得到了这个代码:

 struct sockaddr_in a;
 char sip[20];
 inet_pton(AF_INET, "192.168.0.182", (void *)&a.sin_addr);
 inet_ntop(AF_INET, (void *)&a.sin_addr, sip, 20);

 printf("htonl:%08x\n", htonl(a.sin_addr.s_addr));
 printf("inet_pton:%08x\n", a.sin_addr.s_addr);
 printf("inet_ntop:%s\n", sip);
Run Code Online (Sandbox Code Playgroud)

输出:

htonl:c0a800b6
inet_pton:b600a8c0
inet_ntop:192.168.0.182
Run Code Online (Sandbox Code Playgroud)

inet_ptonis的输出b6.00.a8.c0,它转换为182.0.168.192,它也不同于 的输出htonl

由于htonl将主机字节顺序转换为网络字节顺序,所以如果inet_pton产生网络字节顺序,我想它们的输出应该是一样的?这是否意味着inet_pton实际产生主机字节顺序?

如果inet_pton已经产生network byte order,为什么我需要htonl获得正确的值?

c sockets networking network-programming endianness

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

如何从另一个 VPC 中的实例连接到 GKE Private 集群?

我在 GCP 平台中有以下资源

  1. xyz VPC 中带有私有端点的 GKE 私有集群
  2. 与集群 (xyz VPC) 位于同一 VPC 中的私有实例,例如 ubuntu-vm-xyz

  3. 另一个 VPC (lmn VPC) 中的私有实例,比如 ubuntu-vm-lmn

由于自动创建了 Google 和 xyz VPC 之间的 VPC 对等互连,我能够从 ubuntu-vm-xyz 连接到集群。

而且我无法从 ubuntu-vm-lmn 连接到集群,因为必须手动创建 Google 和 lmn VPC 之间的 VPC 对等互连。我可以创建从我这边到 Google 网络的对等互连设置。

我们如何从 Google 端对 lmn VPC 进行对等连接?

networking vpc google-kubernetes-engine

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

以太网数据不是总是包含 IP 数据包吗?

我对以下用 Python 编写的代码有疑问:

def parse_ethernet(timestamp, packet)
    ethernet = dpkt.ethernet.Ethernet(packet)
    if isinstance(ethernet.data,dpkt.ip.IP):
        parse_ip(ethernet.data)
Run Code Online (Sandbox Code Playgroud)

代码的想法是使用python中的dpkt库解析以太网数据包。我的问题是关于以下行:

if isinstance(ethernet.data,dpkt.ip.IP):
Run Code Online (Sandbox Code Playgroud)

为什么需要证明 ethernet.data 是否是 IP 数据包的实例?以太网数据不是总是包含 IP 数据包吗?

python ip networking ethernet packet

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

从套接字读取前 128 个字节但将其余字节直接写入文件的有效方法

我正在尝试通过以下方式从某些服务下载文件:

BODY="$(netcat "127.0.0.1" 61222 <<< "download|file_dir|file_name")"
SIGNATURE="$(echo -n "$BODY" | head -c 128)"
echo -n "$BODY" | tail -c +129 | dd of="$FILE_PATH" >& /dev/null
Run Code Online (Sandbox Code Playgroud)

但是这种方法有两个缺点:

  1. 文件的整个主体必须​​存储在变量中BODY
  2. 这仅适用于文本文件。

有没有一种有效的方法可以将套接字中的前 128 个字节读入 bash 变量,但将其余字节直接写入文件?

linux bash networking

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

Azure 网络安全组与路由表

网络新手在这里。从文档中感觉 NSG 和路由表(UDR)都在做同样的事情 - 能够在多个级别(Vnet、子网、VM)定义 ACL

https://docs.microsoft.com/en-us/azure/virtual-network/network-security-group-how-it-works https://docs.microsoft.com/en-us/azure/virtual-network /virtual-networks-udr-overview

那么它们有何不同以及何时使用?

谢谢。

networking routetable azure-virtual-network azure-nsg

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