2010-03-21 21 views
5

Tengo un Arduino con un Ethernet Shield.Conexión de Arduino a Internet a través de un servidor de seguridad proxy

¿Cómo puedo conectarlo a Internet a través de un servidor de seguridad proxy?

Por ejemplo, la biblioteca de Arduino Ethernet sólo tiene this referencia para demostrar cómo conectar la tarjeta a la Internet, pero ni idea de cómo hacerlo a través de servidores proxy firewall, etc.

repite desde las páginas de ayuda de Arduino.

#include <Ethernet.h> 

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 
byte ip[] = { 10, 0, 0, 177 }; 
byte server[] = { 64, 233, 187, 99 }; // Google 

Client client(server, 80); 

void setup() 
{ 
    Ethernet.begin(mac, ip); 
    Serial.begin(9600); 

    delay(1000); 

    Serial.println("connecting..."); 

    if (client.connect()) { 
    Serial.println("connected"); 
    client.println("GET /search?q=arduino HTTP/1.0"); 
    client.println(); 
    } else { 
    Serial.println("connection failed"); 
    } 
} 

void loop() 
{ 
    if (client.available()) { 
    char c = client.read(); 
    Serial.print(c); 
    } 

    if (!client.connected()) { 
    Serial.println(); 
    Serial.println("disconnecting."); 
    client.stop(); 
    for(;;) 
     ; 
    } 
} 

Como se puede ver, aquí no hay forma de que resuelva mis conexiones TCP a través de un servidor de seguridad proxy.

También tengo curiosidad por saber cómo se resuelve todo este proceso de conexión TCP a través de un servidor proxy de firewall en el contexto anterior, por favor, incluya también una referencia adecuada.

+0

No estoy seguro de que pertenezca a Server Fault .. la pregunta va en demasiadas direcciones "explicar cortafuegos", "darme código de muestra", etc. –

+0

Pregunta editada para mayor claridad. –

Respuesta

0

La clase Client no admite SOCKS ni proxys HTTP. Tendrá que modificar el código en Ethernet.h usted mismo.

+0

La respuesta es técnicamente correcta (la biblioteca existente no es compatible con el proxy), sin embargo, no ofrece ninguna solución (como la respuesta con 5 votos). –

5

Si desea conectarse a través de un proxy, utilice el nombre del servidor proxy como la dirección que se está conectando, e incluyen la dirección del servidor como parte de su solicitud GET:

// if you get a connection, report back via serial: 
if (client.connect("www.proxy.com", 8080)) { // This is connecting to the proxy 
Serial.println("connected"); 

// Make a HTTP request through proxy: 
client.println("GET http://www.actualserver.com/search?q=arduino HTTP/1.0"); 
client.println(); 

La respuesta original es here.

Cuestiones relacionadas