<div dir="ltr">Pisu to v IDE Arduina a momnetalne tam mam pichnute ESP32.<div><br></div><div>Ted se mi podarilo najit tenhle kod tak to vyzkousim:</div><div><br></div><div><pre style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:11.9px;margin-top:0px;margin-bottom:0px;word-wrap:normal;padding:16px;overflow:auto;line-height:1.45;background-color:rgb(246,248,250);border-radius:3px;word-break:normal;color:rgb(36,41,46)">#<span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">include</span> <span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box"><</span>ESP8266WiFi.h<span class="gmail-pl-pds" style="box-sizing:border-box">></span></span>
<span class="gmail-pl-c" style="box-sizing:border-box;color:rgb(106,115,125)"><span class="gmail-pl-c" style="box-sizing:border-box">//</span> include plain C library</span>
<span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">extern</span> <span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>C<span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span> {
#<span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">include</span> <span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>user_interface.h<span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span>
}

#<span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">define</span> <span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(111,66,193)">YOUR_WIFI_SSID</span> <span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>******-******<span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span>
#<span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">define</span> <span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(111,66,193)">YOUR_WIFI_PASSWD</span> <span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>******-******<span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span>

boolean waitingDHCP=<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">false</span>;
<span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">char</span> last_mac[<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">18</span>];

<span class="gmail-pl-c" style="box-sizing:border-box;color:rgb(106,115,125)"><span class="gmail-pl-c" style="box-sizing:border-box">//</span> Manage incoming device connection on ESP access point</span>
<span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">void</span> <span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(111,66,193)">onNewStation</span>(WiFiEventSoftAPModeStationConnected sta_info) {
  Serial.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">println</span>(<span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>New Station :<span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span>);
  <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">sprintf</span>(last_mac,<span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>%02X:%02X:%02X:%02X:%02X:%02X<span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span>, <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">MAC2STR</span>(sta_info.<span class="gmail-pl-smi" style="box-sizing:border-box">mac</span>));
  Serial.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">printf</span>(<span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>MAC address : %s<span class="gmail-pl-cce" style="box-sizing:border-box">\n</span><span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span>,last_mac);
  Serial.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">printf</span>(<span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>Id : %d<span class="gmail-pl-cce" style="box-sizing:border-box">\n</span><span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span>, sta_info.<span class="gmail-pl-smi" style="box-sizing:border-box">aid</span>);
  waitingDHCP=<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">true</span>;
}

<span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">void</span> <span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(111,66,193)">setup</span>() { 

  <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">static</span> WiFiEventHandler <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">e1</span>;

  Serial.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">begin</span>(<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">115200</span>);
  Serial.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">println</span>();
  WiFi.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">mode</span>(WIFI_AP_STA);
  WiFi.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">begin</span>(YOUR_WIFI_SSID, YOUR_WIFI_PASSWD);

  <span class="gmail-pl-c" style="box-sizing:border-box;color:rgb(106,115,125)"><span class="gmail-pl-c" style="box-sizing:border-box">//</span> Event subscription</span>
  <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">e1</span> = WiFi.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">onSoftAPModeStationConnected</span>(onNewStation);
}

<span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">void</span> <span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(111,66,193)">loop</span>() {

  <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">if</span> (waitingDHCP) {
    String cb;
    <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">if</span> (<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">deviceIP</span>(last_mac,cb)) {
      Serial.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">println</span>(<span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>Ip address :<span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span>);
      Serial.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">println</span>(cb); <span class="gmail-pl-c" style="box-sizing:border-box;color:rgb(106,115,125)"><span class="gmail-pl-c" style="box-sizing:border-box">//</span>do something</span>
    } <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">else</span> {
      Serial.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">println</span>(<span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>Problem during ip address request :<span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span>);
      Serial.<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">println</span>(cb); <span class="gmail-pl-c" style="box-sizing:border-box;color:rgb(106,115,125)"><span class="gmail-pl-c" style="box-sizing:border-box">//</span>do something else</span>
    }
  }

  <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">delay</span>(<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">2000</span>);
}

boolean <span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(111,66,193)">deviceIP</span>(<span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">char</span>* mac_device, String &cb) {

  <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">struct</span> <span class="gmail-pl-en" style="box-sizing:border-box;color:rgb(111,66,193)">station_info</span> *station_list = <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">wifi_softap_get_station_info</span>();

  <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">while</span> (station_list != <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">NULL</span>) {
    <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">char</span> station_mac[<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">18</span>] = {<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">0</span>}; <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">sprintf</span>(station_mac, <span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>%02X:%02X:%02X:%02X:%02X:%02X<span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span>, <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">MAC2STR</span>(station_list->bssid));
    String station_ip = <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">IPAddress</span>((&station_list->ip)->addr).<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">toString</span>();

    <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">if</span> (<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">strcmp</span>(mac_device,station_mac)==<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">0</span>) {
      waitingDHCP=<span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">false</span>;
      cb = station_ip;
      <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">return</span> <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">true</span>;
    } 

    station_list = <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">STAILQ_NEXT</span>(station_list, next);
  }

  <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">wifi_softap_free_station_info</span>();
  cb = <span class="gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-pl-pds" style="box-sizing:border-box">"</span>DHCP not ready or bad MAC address<span class="gmail-pl-pds" style="box-sizing:border-box">"</span></span>;
  <span class="gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">return</span> <span class="gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">false</span>;
}</pre></div></div><div class="gmail_extra"><br><div class="gmail_quote">Dne 23. listopadu 2017 10:35 Jaroslav Buchta <span dir="ltr"><<a href="mailto:jaroslav.buchta@hascomp.cz" target="_blank">jaroslav.buchta@hascomp.cz</a>></span> napsal(a):<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <div class="m_5918539384410653806moz-cite-prefix">Dne 23.11.2017 v 10:30 hwnews
      konference napsal(a):<br>
    </div>
    <blockquote type="cite"><div><div class="h5">
      <div dir="ltr">Zdravim,
        <div><br>
        </div>
        <div>vcera jsem prohlizel dokumentaci knihovny Wifi pro ESP a
          nejak v ni nevidim jak nejak jednoduse zjistit na jakych IP
          sedi klienti do AP prihlaseni.</div>
        <div><br>
        </div>
        <div>Je tam metoda jak zjistit jejich pocet, ale ne kde
          jsou...aspon to nevidim. A take jsem zatim nenasel jakym
          zpusobem AP v ESP prideluje IP adresy klientum.</div>
        <div><br>
        </div>
        <div>Libilo by se mi, kdybych cas od casu mohl vylistovat seznam
          klientu, abych jej mohl porovnat s aktualnim stavem a ty co
          pribyly mohl zacit vycitat.</div>
        <div><br>
        </div>
        <div>Takhle by mi nezbylo nez projizdet celej subnet a zkouset
          zda se neco ozve</div>
        <div><br>
        </div>
        <div>RV</div>
      </div>
      <br>
      <fieldset class="m_5918539384410653806mimeAttachmentHeader"></fieldset>
      <br>
      </div></div><pre>______________________________<wbr>_________________
HW-list mailing list  -  sponsored by <a class="m_5918539384410653806moz-txt-link-abbreviated" href="http://www.HW.cz" target="_blank">www.HW.cz</a>
<a class="m_5918539384410653806moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a>
<a class="m_5918539384410653806moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/<wbr>listinfo/hw-list</a>
</pre>
    </blockquote>
    <p>A v čem to programujete? Jedná se o ESP8266 nebo 32? U 8266 nevím
      jestli používá LWIP, pokud ano, mělo by to jít zjistit přes
      rozhraní této knihovny.<br>
    </p>
  </div>

<br>______________________________<wbr>_________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/<wbr>listinfo/hw-list</a><br>
<br></blockquote></div><br></div>