鱼C论坛

 找回密码
 立即注册
查看: 1812|回复: 3

[已解决]用python判断两个IP是否在同一子网

[复制链接]
发表于 2018-3-30 09:58:50 From FishC Mobile | 显示全部楼层 |阅读模式
25鱼币
本帖最后由 涛4091 于 2023-2-23 11:20 编辑

谁有思路  来讨论讨论
要输入4次
第一次输入IP 192.168.1.1 第二次输入子网掩码 255.255.255.24 第三次输入IP 192.168.1.2第四次输入子网掩码 255.255.255.25
然后需要把第一次和第二次输入的要先转换成8位二进制 然后在做与运算的结婚与第二次的IP和子网掩码的二进制与运算 进行比较

最佳答案
2018-3-30 09:58:51
  1. def ip_and_mark(sub_ip, sub_mark):
  2.     return str(int(bin(int(sub_ip) & int(sub_mark)),2))

  3. def convert(ip, mark):
  4.     ip1,ip2,ip3,ip4 = ip.split(".")
  5.     mark1,mark2,mark3,mark4 = mark.split(".")

  6.     new_ip1 = ip_and_mark(ip1,mark1)
  7.     new_ip2 = ip_and_mark(ip2,mark2)
  8.     new_ip3 = ip_and_mark(ip3,mark3)
  9.     new_ip4 = ip_and_mark(ip4,mark4)

  10.     return new_ip1+'.'+new_ip2+'.'+new_ip3+'.'+new_ip4

  11. ip1 = input("请输入第1组的IP地址:")
  12. mark1 = input("请输入第1组的子网掩码:")
  13. print()
  14. ip2 = input("请输入第2组的IP地址:")
  15. mark2 = input("请输入第2组的子网掩码:")

  16. if convert(ip1,mark1)==convert(ip2,mark2):
  17.     print("在同一子网")
  18. else:
  19.     print("不在")
复制代码

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-30 09:58:51 | 显示全部楼层    本楼为最佳答案   
  1. def ip_and_mark(sub_ip, sub_mark):
  2.     return str(int(bin(int(sub_ip) & int(sub_mark)),2))

  3. def convert(ip, mark):
  4.     ip1,ip2,ip3,ip4 = ip.split(".")
  5.     mark1,mark2,mark3,mark4 = mark.split(".")

  6.     new_ip1 = ip_and_mark(ip1,mark1)
  7.     new_ip2 = ip_and_mark(ip2,mark2)
  8.     new_ip3 = ip_and_mark(ip3,mark3)
  9.     new_ip4 = ip_and_mark(ip4,mark4)

  10.     return new_ip1+'.'+new_ip2+'.'+new_ip3+'.'+new_ip4

  11. ip1 = input("请输入第1组的IP地址:")
  12. mark1 = input("请输入第1组的子网掩码:")
  13. print()
  14. ip2 = input("请输入第2组的IP地址:")
  15. mark2 = input("请输入第2组的子网掩码:")

  16. if convert(ip1,mark1)==convert(ip2,mark2):
  17.     print("在同一子网")
  18. else:
  19.     print("不在")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-1 23:32:10 | 显示全部楼层

感觉是对的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-2 09:09:49 | 显示全部楼层

本来就对的好吧。给币吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 19:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表