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
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮