-
Notifications
You must be signed in to change notification settings - Fork 1
/
dhcp_dns.ino
60 lines (47 loc) · 1.98 KB
/
dhcp_dns.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
void dhcp_dns()
{
//-----------------------------------------------------------------------------------
// Get DHCP address
// Putting DHCP setup and DNS lookup in the main loop allows for:
// powering nanode before ethernet is connected
//-----------------------------------------------------------------------------------
if (ether.dhcpExpired()) dhcp_status = 0; // if dhcp expired start request for new lease by changing status
if (!dhcp_status){
#ifdef UNO
wdt_disable();
#endif
dhcp_status = ether.dhcpSetup(); // DHCP setup
#ifdef UNO
wdt_enable(WDTO_8S);
#endif
Serial.print("DHCP status: "); // print
Serial.println(dhcp_status); // dhcp status
if (dhcp_status){ // on success print out ip's
ether.printIp("IP: ", ether.myip);
ether.printIp("GW: ", ether.gwip);
static byte dnsip[] = {8,8,8,8};
ether.copyIp(ether.dnsip, dnsip);
ether.printIp("DNS: ", ether.dnsip);
//ether.copyIp(ether.hisip, hisip); // un-comment for posting to static IP server (no domain name)
//ether.hisport = 3000;
//dns_status = 1; // un-comment for posting to static IP server (no domain name)
} else { ethernet_error = 1; }
}
//-----------------------------------------------------------------------------------
// Get server address via DNS
//-----------------------------------------------------------------------------------
if (dhcp_status && !dns_status){
#ifdef UNO
wdt_disable();
#endif
dns_status = ether.dnsLookup(website); // Attempt DNS lookup
#ifdef UNO
wdt_enable(WDTO_8S);
#endif;
Serial.print("DNS status: "); // print
Serial.println(dns_status); // dns status
if (dns_status){
ether.printIp("SRV: ", ether.hisip); // server ip
} else { ethernet_error = 1; }
}
}