在终端下输入adb shell,进入android的终端中,输入netcfg 会得到以下结果:
root@ardbeg:/ # netcfg
ip6tnl0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
wlan0 DOWN 0.0.0.0/0 0x00001002 00:90:4c:11:22:33
rmnetctl DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00
sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
eth0 UP 0.0.0.0/0 0x00001003 92:a5:82:29:53:e4
其中第一项为网卡接口类型,第二项为打开关闭状态,第三项为分配的ip地址,第四项为接口标志,第五项为硬件地址。netcfg的源码在系统下位置为:platform/systom/core/netcfg/netcfg.c
首先看下它的主函数:
int main(int argc, char **argv)
{
char *iname;
int n;
if(ifc_init()) {
die("Cannot perform requested operation");
}
if(argc == 1) {
int result = dump_interfaces();
ifc_close();
return result;
}
if(argc < 3) usage();
iname = argv[1];
if(strlen(iname) > 16) usage();
argc -= 2;
argv += 2;
while(argc > 0) {
for(n = 0; CMDS[n].name; n++){
if(!strcmp(argv[0], CMDS[n].name)) {
char *cmdname = argv[0];
int nargs = CMDS[n].nargs;
argv[0] = iname;
if(argc < nargs) {
fprintf(stderr, "not enough arguments for '%s'\n", cmdname);
ifc_close();
exit(1);
}
if(call_func(CMDS[n].func, nargs, argv)) {
fprintf(stderr, "action '%s' failed (%s)\n", cmdname, strerror(errno));