Skip to content

Commit 02ea74d

Browse files
dpgeorgepfalcon
authored andcommitted
esp8266: Add network.ifconfig().
1 parent 1febaf3 commit 02ea74d

2 files changed

Lines changed: 15 additions & 0 deletions

File tree

esp8266/modnetwork.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,19 @@ STATIC mp_obj_t esp_mac(mp_uint_t n_args, const mp_obj_t *args) {
136136
}
137137
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(esp_mac_obj, 0, 1, esp_mac);
138138

139+
STATIC mp_obj_t esp_ifconfig(void) {
140+
struct ip_info info;
141+
wifi_get_ip_info(STATION_IF, &info);
142+
mp_obj_t ifconfig[4] = {
143+
netutils_format_ipv4_addr((uint8_t*)&info.ip, NETUTILS_BIG),
144+
netutils_format_ipv4_addr((uint8_t*)&info.netmask, NETUTILS_BIG),
145+
netutils_format_ipv4_addr((uint8_t*)&info.gw, NETUTILS_BIG),
146+
MP_OBJ_NEW_QSTR(MP_QSTR_), // no DNS server
147+
};
148+
return mp_obj_new_tuple(4, ifconfig);
149+
}
150+
STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_ifconfig_obj, esp_ifconfig);
151+
139152
STATIC const mp_map_elem_t mp_module_network_globals_table[] = {
140153
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_network) },
141154
// MicroPython "network" module interface requires it to contains classes
@@ -149,6 +162,7 @@ STATIC const mp_map_elem_t mp_module_network_globals_table[] = {
149162
{ MP_OBJ_NEW_QSTR(MP_QSTR_scan), (mp_obj_t)&esp_scan_obj },
150163
{ MP_OBJ_NEW_QSTR(MP_QSTR_isconnected), (mp_obj_t)&esp_isconnected_obj },
151164
{ MP_OBJ_NEW_QSTR(MP_QSTR_mac), (mp_obj_t)&esp_mac_obj },
165+
{ MP_OBJ_NEW_QSTR(MP_QSTR_ifconfig), (mp_obj_t)&esp_ifconfig_obj },
152166

153167
#if MODNETWORK_INCLUDE_CONSTANTS
154168
{ MP_OBJ_NEW_QSTR(MP_QSTR_STAT_IDLE),

esp8266/qstrdefsport.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ Q(scan)
103103
Q(status)
104104
Q(isconnected)
105105
Q(mac)
106+
Q(ifconfig)
106107
Q(STAT_IDLE)
107108
Q(STAT_CONNECTING)
108109
Q(STAT_WRONG_PASSWORD)

0 commit comments

Comments
 (0)