
1、如果是固定IP上网
使用cat /etc/sysconfig/network命令,里面gateway项就是网关。
2、如果是dhcp上网
使用route命令,default那一行就是网关。
/etc/sysconfig/network文件是服务器网络配置,因此直接用cat命令即可查看网关。
route命令在数据包没有有效传递的情况下,可以利用查看路由表。如果traceroute命令揭示出一条异常或低效的传输路径,则可以用route命令来确认为何选择该路径,而且可以配置一个更有效的路由。
扩展资料:
linux系统下route命令常用参数:
1、-f
清除所有不是主路由(网掩码为 255.255.255.255 的路由)、环回网络路由(目标为 127.0.0.0,网掩码为 255.255.255.0 的路由)或多播路由(目标为 224.0.0.0,网掩码为 240.0.0.0 的路由)的条目的路由表。
如果它与命令之一(例如 add、change 或 delete)结合使用,表会在运行命令之前清除。
2、-p
与 add 命令共同使用时,指定路由被添加到注册表并在启动 TCP/IP 协议的时候初始化 IP 路由表。默认情况下,启动 TCP/IP 协议时不会保存添加的路由。与 print 命令一起使用时,则显示永久路由列表。
参考资料来源:百度百科-ROUTE命令
参考资料来源:百度百科-服务器配置
问题1:在linux系统里面获得网关地址没有专门的函数,可以通过查配置文件/proc/net/route来获得,没有更好的方法了,因为linux提供的源码包里面都是这么做的,因此你需要编写一段解析配置文件/proc/net/route的代码来完成.
问题2:
我觉得用libnet得网关MAC应该不是个小例子,我也没有研究过,不好下结论,楼下继续......
方案一:你用C语言去读取/etc/resolv.conf,格式是namserver *.*.*.* 提取以下 就有DNS了
至于网关 你可以去读取/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0等文件,但是各个Linux系统可能少有差别。
方案二:
在C程序中调用exec函数,执行route命令,从返回的结果中提取网关
至于DNS 也可以通过dig localhost, 从结果中提取DNS 但是就没有方案一中快了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)