Python中文
首页
教程
问答
标签
搜索
登录
注册
检查IP地址是否在给定范围内
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我想检查IP <code>180.179.77.11</code>是否位于特定范围之间,比如<code>180.179.0.0 - 180.179.255.255</code>。在</p> <p>我写了一个函数来比较每个IP八位字节和其他的。在</p> <pre><code>def match(mask, IP): min_ip = mask.split(' - ')[0].split('.') max_ip = mask.split(' - ')[1].split('.') ip = IP.split('.') for i in range(4): print ip[i] + " < " + min_ip[i] + " or " + ip[i] + " > " + max_ip[i] print ip[i] < min_ip[i] or ip[i] > max_ip[i] if ip[i] < min_ip[i] or ip[i] > max_ip[i]: return False return True match("180.179.0.0 - 180.179.255.255", "180.179.77.11") </code></pre> <p><strong>输出:</strong></p> ^{pr2}$ <p>但是,它似乎不能正常工作;在比较<code>77</code>和{<cd4>}时,问题似乎发生在第三个八位字节中。在</p> <p>我写了一些印刷体来说明问题所在。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>当您调用匹配函数时,将传入字符串,这些字符串根据八位字节进行拆分。然而,当进行比较时,被比较的八位字节仍然是一个字符串。因此“7”>;“2”表示第三个八位字节。如果将每个八位字节转换为整数:</p> <pre><code>if int(ip[i]) < int(min_ip[i]) or int(ip[i]) > int(max_ip[i]): </code></pre> <p>你会得到预期的反应。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何提高Djang的410误差
3 回答
如何提高doc2vec模型中两个文档(句子)的余弦相似度?
9 回答
如何提高Docker的日志限制?|[输出已剪裁,达到日志限制100KiB/s]
1 回答
如何提高DQN的性能?
6 回答
如何提高EasyOCR的准确性/预测?
10 回答
如何提高Euler#39项目解决方案的效率?
7 回答
如何提高F1成绩进行分类
9 回答
如何提高FaceNet的准确性
3 回答
如何提高fft处理的精度?
6 回答
如何提高Fibonacci实现对大n的精度?
3 回答
如何提高Flask与psycopg2的连接时间
3 回答
如何提高FosterCauer变换的scipy.signal.invres()的数值稳定性?
10 回答
如何提高gae查询的性能?
9 回答
如何提高GANs用于时间序列预测/异常检测的结果
7 回答
如何提高gevent和tornado组合的性能?
10 回答
如何提高googleappengin请求日志的吞吐量
1 回答
如何提高googlevision文本识别的准确性
7 回答
如何提高groupby/apply效率
7 回答
如何提高Gunicorn中的请求率
1 回答
如何提高G中的文件编码转换
8 回答