在Android下利用Shell命令管理网络接口
来源:互联网 发布:宫刑 知乎 废除 编辑:程序博客网 时间:2024/06/07 07:16
为啥要使用shell命令操纵本地网络?因为这样就可以绕过上层connectService来干一些事情,至于具体要干点什么事情,容我先卖个关子在以后的blog里说明。
首先进入adb shell,然后去Ping一个服务器的ip地址
ping 211.69.198.222PING 211.69.198.222 (211.69.198.222) 56(84) bytes of data.64 bytes from 211.69.198.222: icmp_seq=1 ttl=46 time=356 ms64 bytes from 211.69.198.222: icmp_seq=2 ttl=46 time=294 ms64 bytes from 211.69.198.222: icmp_seq=5 ttl=46 time=342 ms64 bytes from 211.69.198.222: icmp_seq=6 ttl=46 time=341 ms64 bytes from 211.69.198.222: icmp_seq=8 ttl=46 time=342 ms64 bytes from 211.69.198.222: icmp_seq=9 ttl=46 time=330 ms^C--- 211.69.198.222 ping statistics ---9 packets transmitted, 6 received, 33% packet loss, time 8025ms
我们发现是可以Ping通的。接着我们通过ifconfig命令(虽然是阉割版)来将我的3g网络接口关闭,随后再打开,然后再去尝试ping刚才的网络地址。
# ifconfig rmnet0rmnet0: ip 172.22.39.243 mask 255.255.255.248 flags [up broadcast running multicast]# ifconfig rmnet0 down# ping 211.69.198.222connect: Network is unreachable# ifconfig rmnet0 up# ping 211.69.198.222connect: Network is unreachable# ping 211.69.198.222connect: Network is unreachable# ifconfig rmnet0rmnet0: ip 172.22.39.243 mask 255.255.255.248 flags [up broadcast running multicast]
这时候我奇怪的发现通过ifconfig命令这么一折腾,网络接口出了问题,虽然ifconfig显示我的rmnet0是打开的,但是却无法ping通。经过仔细的思考,我猜测是因为当你把网络接口down掉之后,你的ip在路由器(基站?)上被释放了,虽然显示网络是可用的,但是这时候的网络是没有配置有效IP的。
这时候通过netcfg rmnet0 dhcp 重新申请一个ip ,然后继续Ping,不出所料,果然成功。
# netcfg rmnet0 dhcp
# ping 211.69.198.222
PING 211.69.198.222 (211.69.198.222) 56(84) bytes of data.
64 bytes from 211.69.198.222: icmp_seq=1 ttl=46 time=2743 ms
64 bytes from 211.69.198.222: icmp_seq=2 ttl=46 time=1747 ms
64 bytes from 211.69.198.222: icmp_seq=3 ttl=46 time=739 ms
64 bytes from 211.69.198.222: icmp_seq=4 ttl=46 time=98.9 ms
64 bytes from 211.69.198.222: icmp_seq=5 ttl=46 time=97.1 ms
^C
--- 211.69.198.222 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4015ms
结论:
通过Android Shell命令,完全可以绕开上层的网络管理机制来控制网络接口的状态。
- 在Android下利用Shell命令管理网络接口
- 在Android下利用Shell命令管理网络接口
- RHEL7网络管理-shell-sed-awk命令
- DOS下网络管理命令
- Android在shell环境下运行linux命令
- Android在Shell环境下运行Linux命令
- Linux 网络接口管理相关命令介绍
- Android下网络通信接口
- 在android执行shell命令
- 【转载】Using SQLite from Shell in Android(在shell 下使用sqlite命令操作数据库)
- 在shell下批量管理redis数据
- 利用ping命令检测网络的Shell程序
- Windows下常用网络管理命令
- python 在linux下调用Shell命令
- Unix/Linux 网络接口管理相关命令介绍
- vim独家秘技两条(1)在任意列中插入等差数列(非插件)(2)利用shell命令插入某个目录下的所有文件名(可用于cocos2d-x android的.mk脚本配置)(下)
- MacBook Pro 下Bash Shell 利用Alias 简化命令
- shell下进行利用mail命令进行邮件的发送
- 封装一个类搞定90%安卓客户端与服务器端交互
- 耶鲁大学心态(估计是杜撰的) 送给正在奋斗的人
- JSP中页面跳转的两种方式
- forword和sendRedirect传值的区别
- 用VC实现对超长数据库字段的操作
- 在Android下利用Shell命令管理网络接口
- CXF入门教程(2) -- 第一个客户端
- 虚函数机制理解
- C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ?(转帖)
- poj2262
- 移动应用丰富动效的六点原则
- C++继承:共有,私有,保护
- Android Activity中启动另一应用程序的方法,无需得到类名
- I2C总线驱动在嵌入式系统中的两种实现