DSP

android ndk开发中常用的系统自带网络命令

2019-07-13 18:34发布

android本身内置了一些网络命令,使用这些命令程序尤其基于ndk开发时会获得很多便利,并在某种程度上可以绕开上层的限制、获得更多详细的信息和更好的灵活性等。
1.操作路由表
获取:ip route 或者 busybox route 新增:ip route add 10.0.0.172/8 dev wlan0 删除:ip route del 10.0.0.172 删除一条默认路由:ip route del default 添加默认路由:route add default gw 10.0.0.172
2.测试网络
ping 10.0.0.172 测试DNS:busybox nslookup blog.csdn.net 测试DNS:dsdnsutil -s 114.114.114.114 -q blog.csdn.net
测试路由路径:busybox traceroute 10.0.0.172
3.查看接口
netcfg netcfg rmnet0
busybox ifconfig (和route类似,android自带的ifconfig默认不会打印出接口信息)
4.操作接口
netcfg wlan0 up/down netcfg wlan0 dhcp up
ifconfig rmnet0 10.0.0.172 up
ifconfig rmnet0 10.0.0.172 netmask 255.0.0.0 up
5.系统属性
打印全部属性:getprop 设置DNS:setprop net.dns1 128.224.160.11   // 此外 net.dns2 类似,不过在我的机子上好像无效,最终采用的dns是dhcp.wlan0.dns1指定的值
6.无线wifi
打印无线拓展:iwconfig
使用netcfg打印接口,在wifi没有打开的情况下是没有wlan0接口的,因为wifi内核模块并未加载, 加载wifi驱动模块:insmod /system/lib/modules/wlan.ko  (这时候wlan0就出来了,补充:后续可以参考这篇文章Android下同时使用WIFI与3G网络。) 卸载wifi驱动模块: rmmod /system/lib/modules/wlan.ko  (注意手动加载后没有卸载的话用户界面是开不了wifi的) 扫描wifi热点:iwlist wlan0 scanning
7.ndc命令(需要ROOT权限) interface list readrxcounter| readtxcounter getthrottle <”rx|tx”> setthrottle driver route <”default|secondary”> list_ttys   ipfwd status enable|disable tether status start-reverse|stop-reverse stop< start interface dnslist dnsset < addr_2> nat pppd attach detach softap startap | stopap fwreload clients status set [ ] resolver setdefaultif setifdns flushdefaultif   刷新DNS缓存 flushif bandwith enable | disable removequota | rq getquota | gq getiquota | giq setquota | sq removequota | rqs removeiiquota | riq setiquota | sq addnaughtyapps | ana removenaughtyapps | rna setgolbalalert | sga debugsettetherglobalalert | dstga setsharedalert | ssa removesharedalert | rsa setinterfacealert | sia removeinterfacealert | ria gettetherstats | gts idletimer enable|disable add|remove firewall enable|disable|is_enabled set_interface_rule set_egress_source_rule set_egress_dest_rule set_uid_rule clatd stop | status| start