@@ -136,6 +136,19 @@ STATIC mp_obj_t esp_mac(mp_uint_t n_args, const mp_obj_t *args) {
136136}
137137STATIC 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+
139152STATIC 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 ),
0 commit comments