当前位置: 技术问答>linux和unix
如何获取Internet上某个网段的子网掩码?
来源: 互联网 发布时间:2015-02-08
本文导语: 如果知道一个IP地址,如果获取该IP地址所在网段的子网掩码呢?(在Linux环境下编程) 我想了一下,有两个方法: (1)通过SNMP协议获取子网掩码,但有可能有些网段根本就没有SNMP服务器。即使有,也得不到口令字...
如果知道一个IP地址,如果获取该IP地址所在网段的子网掩码呢?(在Linux环境下编程)
我想了一下,有两个方法:
(1)通过SNMP协议获取子网掩码,但有可能有些网段根本就没有SNMP服务器。即使有,也得不到口令字。
(2)最根本的解决方法还是应该从TCP/IP协议本身入手:以广播方式发送ICMP消息,消息类型为17,接收返回结果就是该网段的子网掩码。但是根本就没有返回结果。
各位大虾,有什么更好的方法吗?
我想了一下,有两个方法:
(1)通过SNMP协议获取子网掩码,但有可能有些网段根本就没有SNMP服务器。即使有,也得不到口令字。
(2)最根本的解决方法还是应该从TCP/IP协议本身入手:以广播方式发送ICMP消息,消息类型为17,接收返回结果就是该网段的子网掩码。但是根本就没有返回结果。
各位大虾,有什么更好的方法吗?
|
最简单的办法, 读取/proc/net/下面的文件。获取ip的子网掩码。
|
/proc/net/route
|
子网掩码前面全是1,直到遇到0。