ESP8266通过WIFI获取IP定位信息
生活随笔
收集整理的這篇文章主要介紹了
ESP8266通过WIFI获取IP定位信息
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
ESP8266通過WIFI獲取IP定位信息
- Arduino使用ESP8266聯(lián)網(wǎng)獲取外網(wǎng)IP地址并上報
Arduino使用ESP8266聯(lián)網(wǎng)獲取外網(wǎng)IP地址并上報
#include <Arduino.h> #include <ESP8266WiFi.h> #include <ESP8266WiFiMulti.h> #include <ESP8266HTTPClient.h> #include <WiFiClient.h>ESP8266WiFiMulti WiFiMulti; //申請實例對象 WiFiClient client; HTTPClient http; //獲取外網(wǎng)的host String getipHostapi="http://ip.catr.cn";//http://ipinfo.io/ip //直接取值無需解析(*)//https://2020.ip138.com/ //通過特征碼截取(**)//http://ip.catr.cn/ //通過特征碼截取(***)工業(yè)和信息化部電信研究院 //經(jīng)測試,最后個速度較快 //通過獲得到的html源碼進行解析IP地址 //如果有html代碼找特征碼 唯一性哦 //解析關鍵方法 htmlcode請求后的返回值 String getip138(String htmlcode) { String bstr="";String estr="";if(getipHostapi.indexOf("ip.catr.cn")>0){bstr="keyword=";estr="\" style=\"color:";}if(getipHostapi.indexOf("ip138.com")>0){bstr="?ip=";estr="&action";}int indexStart = htmlcode.indexOf(bstr);//特征碼1起始位置int endIndex =htmlcode.indexOf(estr);//特征碼2位置int beglen=bstr.length();//特征碼1的長度return htmlcode.substring(indexStart+beglen,endIndex);//此函數(shù)的意義要理解 } /* HTTP狀態(tài)碼 狀態(tài)代碼有三位數(shù)字組成,第一個數(shù)字定義了響應的類別,共分五種類別:1xx:指示信息–表示請求已接收,繼續(xù)處理 2xx:成功–表示請求已被成功接收、理解、接受 3xx:重定向–要完成請求必須進行更進一步的操作 4xx:客戶端錯誤–請求有語法錯誤或請求無法實現(xiàn) 5xx:服務器端錯誤–服務器未能實現(xiàn)合法的請求常見狀態(tài)碼: 200 OK //客戶端請求成功 400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解 401 Unauthorized //請求未經(jīng)授權,這個狀態(tài)代碼必須和WWW-Authenticate報頭域一起使用 403 Forbidden //服務器收到請求,但是拒絕提供服務 404 Not Found //請求資源不存在,eg:輸入了錯誤的URL 500 Internal Server Error //服務器發(fā)生不可預期的錯誤 503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時間后可能恢復正常 */注意點:
1)get請求時要加 addHeader不然會拒絕等問題
2)要有延時以便有相應時間
3)根據(jù)int httpCode = http.GET();的返回值進行判斷 是否200等 狀態(tài)碼見上面
4)loop(){進行請求并判斷}
有任何問題聯(lián)系,關注哦
總結
以上是生活随笔為你收集整理的ESP8266通过WIFI获取IP定位信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 体育战略放眼全球 今目标携海信手机开启欧
- 下一篇: 初次接触编程的乐趣