Skip to content

Commit d1ad5ec

Browse files
committed
Add generic IP utilities
Add: broadcastIP() => Retrieve the network id (e.g. 192.168.0.0) networkID() => Retrieve the broadcast IP (e.g. 192.168.0.255) subnetCIDR() => Retrieve the subnet CIDR (e.g. 24)
1 parent b057aee commit d1ad5ec

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

libraries/WiFi/src/ETH.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,33 @@ IPAddress ETHClass::dnsIP(uint8_t dns_no)
197197
return IPAddress(dns_ip.u_addr.ip4.addr);
198198
}
199199

200+
IPAddress ETHClass::broadcastIP()
201+
{
202+
tcpip_adapter_ip_info_t ip;
203+
if(tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_ETH, &ip)){
204+
return IPAddress();
205+
}
206+
return WiFiGenericClass::calculateBroadcast(IPAddress(ip.gw.addr), IPAddress(ip.netmask.addr));
207+
}
208+
209+
IPAddress ETHClass::networkID()
210+
{
211+
tcpip_adapter_ip_info_t ip;
212+
if(tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_ETH, &ip)){
213+
return IPAddress();
214+
}
215+
return WiFiGenericClass::calculateNetworkID(IPAddress(ip.gw.addr), IPAddress(ip.netmask.addr));
216+
}
217+
218+
uint8_t ETHClass::subnetCIDR()
219+
{
220+
tcpip_adapter_ip_info_t ip;
221+
if(tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_ETH, &ip)){
222+
return (uint8_t)0;
223+
}
224+
return WiFiGenericClass::calculateSubnetCIDR(IPAddress(ip.netmask.addr));
225+
}
226+
200227
const char * ETHClass::getHostname()
201228
{
202229
const char * hostname;

libraries/WiFi/src/ETH.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ class ETHClass {
7979
IPAddress gatewayIP();
8080
IPAddress dnsIP(uint8_t dns_no = 0);
8181

82+
IPAddress broadcastIP();
83+
IPAddress networkID();
84+
uint8_t subnetCIDR();
85+
8286
uint8_t * macAddress(uint8_t* mac);
8387
String macAddress();
8488

0 commit comments

Comments
 (0)