Pages: [1]   Go Down
Author Topic: How do I obtain the remote IP address for my Ethernet shield?  (Read 1008 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 0
Posts: 297
Arduino rocks!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

How do I obtain the remote IP address for my Ethernet shield?
Logged

As always... Thanks for posting!!!

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3283
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

First learn how to search the forum...

The answer will present itself promptly.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Sr. Member
****
Karma: 0
Posts: 297
Arduino rocks!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I did do that before I made this post...
Nothing was helpful..
Logged

As always... Thanks for posting!!!

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 631
Posts: 50098
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I did do that before I made this post...
Nothing was helpful..
What did you search for?

How did you miss this?
http://arduino.cc/forum/index.php/topic,82416.0.html
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3283
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

When I clicked your reply to answer, two posts down was a thread asking exactly the same thing completely answered. Hence my reply.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Sr. Member
****
Karma: 0
Posts: 297
Arduino rocks!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I saw that.
he's doing something else
"I wanted to record the remote IP address of clients using my Arduino as a web server."
Logged

As always... Thanks for posting!!!

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 631
Posts: 50098
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I wanted to record the remote IP address of clients using my Arduino as a web server.
Well, first you have to obtain it. That's what the other thread is about. Once you have the remote IP, you can "record" it in whatever way you want.
Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 297
Arduino rocks!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm not sure I see where it says how to obtain a remote IP in the post
Logged

As always... Thanks for posting!!!

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 631
Posts: 50098
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I added the following lines to the end of the EthernetClient.cpp file:
uint8_t *EthernetClient::getRemoteIP(uint8_t remoteIP[])
{
  W5100.readSnDIPR(_sock, remoteIP);
  return remoteIP;
}
So what do you suppose this function does?
Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 297
Arduino rocks!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

That gets the remote IP of devices connected to your shield, right?
Logged

As always... Thanks for posting!!!

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3283
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

That gets the remote IP of devices connected to your shield, right?

Yes.

I saw that.
he's doing something else
"I wanted to record the remote IP address of clients using my Arduino as a web server."

Now, think with me for a second.
If you're a client, no one's going to connect to you. You are going to connect to someone. So, you already know who's on the other side, since you were the one connecting to it.
On the other hand, if you're a server, you have no idea who's connecting to you. That's where the getRemoteIP function comes in handy. So, I still don't understand why you think the previous thread isn't help for you at all.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

0
Offline Offline
Tesla Member
***
Karma: 145
Posts: 9671
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Below is some code I copied/pasted to get the client IP address to print to the serial monitor and the web page. Still need to capture the client IP into a string.

Code:
//zoomkat 12-13-11
//client IP code
//for use with IDE 0021
//open serial monitor to see what the arduino receives
//

#include <SPI.h>
#include <Ethernet.h>
byte rip[4];
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 102 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(84); //server port
String readString;

//////////////////////

void setup(){

  //start Ethernet
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();

  //enable serial data print
  Serial.begin(9600);
  Serial.println("client IP test"); // so I can keep track of what is loaded
}

void loop(){
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        //read char by char HTTP request
        if (readString.length() < 100) {
          //store GET characters to string
          readString += c;
         }

        //if HTTP request has ended
        if (c == '\n') {
          //////////// print to serial monitor
          Serial.println("client IP address");
          client.getRemoteIP(rip);
          for (int bcount= 0; bcount < 4; bcount++)
          {
            Serial.print(rip[bcount], DEC);
            if (bcount<3) Serial.print(".");
          }
          Serial.println();

          ///////////////
          Serial.println(readString);

          //now output HTML data header
          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();
          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<TITLE>Arduino client IP test page</TITLE>");
          client.println("</HEAD>");
          client.println("<BODY>");
          client.println("<H1>Zoomkat's client IP test</H1>");
          client.println("Client IP is </H1>");
          ////////////////// print to web page
          client.getRemoteIP(rip);
          for (int bcount= 0; bcount < 4; bcount++)
          {
            client.print(rip[bcount], DEC);
            if (bcount<3) client.print(".");
          }
          /////////////////////////
          client.println("</BODY>");
          client.println("</HTML>");

          delay(1);
          //stopping client
          client.stop();

          //clearing string for next read
          readString="";

        }
      }
    }
  }
}


Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Offline Offline
Sr. Member
****
Karma: 0
Posts: 297
Arduino rocks!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks!

And sorry for being so annoying...
Logged

As always... Thanks for posting!!!

Pages: [1]   Go Up
Jump to: