- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
给定一个 IPv4 地址(needle)和一个未排序的 IPv4 地址数组(haystack),我如何以编程方式确定给定的 haystack 中哪个单个地址最接近(网络方面的,而不是地理上的)needle?
由于我无法访问每个地址的网络掩码,因此解决方案应忽略网络掩码和跟踪路由之类的选项。
使用了各种地址,我的意思是:私有(private)、保留、广播、lan 和 wan。
欢迎以理论、伪代码、Python、PHP 或 Perl 形式提供任何帮助。
问题Getting IP address list between two IP addresses大致相似,但确实相当精简。
最佳答案
我仍然不太确定你在问什么,但根据你的评论
@PeterGibson by closest I meant, 192.168.1.101 is closer to 192.168.56.1 than to 172.30.130.66 . And 192.168.1.254 is closer to 192.168.1.240 than to 192.168.2.1
您可以尝试使用以下 python 代码来实现距离函数:
import socket
def dist(a, b):
def to_num(addr):
# parse the address string into integer quads
quads = map(ord, socket.inet_aton(addr))
# spread the quads out
return reduce(lambda x,y: x * 0x10000 + y, quads)
return abs(to_num(a) - to_num(b))
返回的数字相当任意,但应该足以满足基本需求。我仍然不确定它应该如何处理广播地址等。
一些例子:
>>> dist('192.168.1.254', '192.168.1.240')
14L
>>> dist('192.168.1.254', '192.168.2.1')
65283L
>>> dist('192.168.1.101', '192.168.56.1')
3604380L
>>> dist('192.168.1.101', '172.30.130.66')
5630092231245859L
关于php - 查找两个 IPv4 地址之间的网络距离(不是地理距离),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17699065/
目前部署在 Kubernetes 中的服务,通过 Calico BGP 将 Service 与集群外网络打通,并在外部的 nginx 中配置 Service 地址对外进行服务暴露。经过一段时间的观察
如发现here , 有一种新的 kube 服务是 IPVS 并且有很多负载均衡算法。 唯一的问题是我没有找到指定这些算法的位置。 我的理解: rr:循环法->循环调用后端pod lc:最少连接-> 将
我想尝试这种新的代理模式以及它为我们的一些应用程序提供的各种调度程序。到目前为止,我一直无法找到更改默认模式的方法 iptables至 ipvs在 GKE 节点上。 每个人都说通过--proxy-mo
我想在现有集群中为 IPVS 启用 Kube-proxy 模式。目前,它在 IPtables 上运行。如何在不影响现有工作负载的情况下将其更改为 IPVS? 我已经安装了所有必需的模块来启用它。另外,
我正在开发的应用程序作为 Kubernetes 集群中的部署运行。为此部署创建的 Pod 分布在集群中的各个节点上。我们的应用程序一次只能处理一个 TCP 连接,并且会拒绝进一步的连接。目前,我们使用
我是一名优秀的程序员,十分优秀!