Go Down

Topic: How do I obtain the remote IP address for my Ethernet shield? (Read 1 time) previous topic - next topic

TECH GEEK

How do I obtain the remote IP address for my Ethernet shield?
As always... Thanks for posting!!!

bubulindo

First learn how to search the forum...

The answer will present itself promptly.
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).

TECH GEEK

I did do that before I made this post...
Nothing was helpful..
As always... Thanks for posting!!!

PaulS

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

bubulindo

When I clicked your reply to answer, two posts down was a thread asking exactly the same thing completely answered. Hence my reply.
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).

TECH GEEK

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."
As always... Thanks for posting!!!

PaulS

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.

TECH GEEK

I'm not sure I see where it says how to obtain a remote IP in the post
As always... Thanks for posting!!!

PaulS

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?

TECH GEEK

That gets the remote IP of devices connected to your shield, right?
As always... Thanks for posting!!!

bubulindo


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.
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).

zoomkat

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: [Select]

//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="";

        }
      }
    }
  }
}


Google forum search: Use Google Advanced Search and use Http://forum.arduino.cc/index in the "site or domain:" box.

TECH GEEK

As always... Thanks for posting!!!

Go Up