1 /*
2 * Copyright (C) 2017-2020 Alibaba Group Holding Limited
3 */
4
5 #include "lwip/opt.h"
6 #include "lwip/netif.h"
7 #include "lwip/apps/ifconfig.h"
8 #include <lwip/def.h>
9 #include <lwip/netdb.h>
10 #include <lwip/sockets.h>
11 #include <aos/cli.h>
12
ifconfig(int argc,char * argv[])13 int ifconfig(int argc,char *argv[])
14 {
15 struct netif *net_if = NULL;
16
17 if ((argc == 0) || (argc >= 1) && (strcmp(argv[0], "status") == 0)) {
18 NETIF_FOREACH(net_if) {
19 if (netif_is_up(net_if) && !ip_addr_isany(&net_if->ip_addr) && netif_is_link_up(net_if)) {
20 char address[16];
21 char gateway[16];
22 char netmask[16];
23 inet_ntoa_r(net_if->ip_addr, address, sizeof(address));
24 inet_ntoa_r(net_if->gw, gateway, sizeof(gateway));
25 inet_ntoa_r(net_if->netmask, netmask, sizeof(netmask));
26 aos_cli_printf("%c%c%d up, "
27 "address:%s gateway:%s netmask:%s\n",
28 net_if->name[0], net_if->name[1], net_if->num,
29 address, gateway, netmask);
30 } else {
31 aos_cli_printf("%c%c%d down\n",
32 net_if->name[0], net_if->name[1], net_if->num);
33 }
34 #if LWIP_IPV6
35 if (netif_is_link_up(net_if)) {
36 int i;
37 for (i = 0; i < LWIP_IPV6_NUM_ADDRESSES; ++i) {
38 if (ip6_addr_isvalid(netif_ip6_addr_state(net_if, i))) {
39 aos_cli_printf("IPv6 addr [%d]: %s\n",
40 i, inet6_ntoa(net_if->ip6_addr[i]));
41 }
42 }
43 }
44 #endif /* LWIP_IPV6 */
45 }
46 } else if (strcmp(argv[1], "up") == 0) {
47 aos_cli_printf("ifconfig up is not support\n");
48 } else if (strcmp(argv[1], "down") == 0) {
49 aos_cli_printf("ifconfig down is not support\n");
50 } else {
51 aos_cli_printf("Invalid command\n");
52 }
53
54 return 0;
55 }
56