PDA

Ver la Versión Completa : Obtener la IP pública


DML
24-08-2003, 00:21:46
Como puedo hacer para averiguar el IP de la computadora que se conecta a internet desde una computador su de red local?

Yo solo puedo obtener IPs como 192.168.0.1 .. 2 ..3
Cuando lo que quiero saber es que mi IP es algo parecido a 24.232.6.96 (nunca lo se especificamente porque varia)

Quiero obtener el IP sin necesidad de mandar un paquete a una pagina de internet, y que me responda de que direccion de IP esta hablando mi LAN.

Otra cosa que queria saber es como conectar una computadora con el IP de la LAN (ej. 192.168.0.2) desde Internet

Julià T.
24-08-2003, 05:05:47
Hola DML:


Puedes saber todas las direcciones IP y más información adicional desde una ventana de dos tecleando
ipcnfig /all

si quieres código en delphi ahí va:

uses
IDStack;

procedure TForm1.Button1Click(Sender: TObject);
Var
i:integer;
begin
with TIdStack.CreateStack do
Try
//muestra una a una las IP de que dispones
for i:=0 to LocalAddresses.Count-1 do
showmessage(LocalAddresses[i]);
//muestra la IP de la red local si esta existe
//o la IP de laconexión a internet si hay red local
showmessage(LocalAddress);
finally
Free;
end;
end;

Para ponerte conectar a un ordenador al otro lado de internet necesitas las direcciones IP de internet de cada ordenador. Si los ordenadores están en una red local, además el puerto de conexión que utilices de este ordenador, debe estar redirigido del router o ordenador que utilices para conectarte a internet.

JXJ
06-01-2008, 18:29:00
Para ponerte conectar a un ordenador al otro lado de internet necesitas las direcciones IP de internet de cada ordenador. Si los ordenadores están en una red local, además el puerto de conexión que utilices de este ordenador, debe estar redirigido del router o ordenador que utilices para conectarte a internet.


Eso que dices como lo logro.

el messenger si se conectar y puedo chatear.
pero nadie logra entrar a mi sitio web
les doy mi ip
123.534.542.222

o con esta
123.534.542.222:80

ni con 8080

alguna idea.

tengo el infinitum que da un modem que crea la red local.
y windows vista home premium
ya desactive toda la seguridad de antivirus , firewall.

keyboy
10-01-2008, 08:17:33
Eso que dices como lo logro.

(...)

tengo el infinitum que da un modem que crea la red local.

(...)

ya desactive toda la seguridad de antivirus , firewall.


El servicio de Infinitum tiene su propio firewall y debes configurarlo para dirigir el puerto 80 a una de tus pcs.

Para ello entra con el navegador a http://home con lo que accederás a la configuración del servicio. Ahí buscas la ficha de "bloqueo de intrusos" y ahí la de "Configuración del bloqueo de intrusos". Verás una lista de "aplicaciones permitidas", cerca de la cual hay un enlace para agregar una aplicación definida por el usuario. En esa parte escribes un nombre de la aplicación, por ejemplo, "Servidor Web", escoges el protocolo TCP y de puerto pones de 80 a 80. Cuando termines, la aplicación deberá aparecer en la lista de aplicaciones permitidas.

Lo siguiente es direccionar esa aplicación a tu pc. Si tienes varias pcs, escoges la que desees poner de servidor en el combo "Seleccionar una computadora", luego seleccionas la aplicación definida antes y la pones en la lista de aplicaciones alojadas.

Dependiendo del modelo específico del modem/ruteador que tengas, los pasos anteriores pueden variar un poco pero ésa es la idea: definir una aplicación con puerto 80 y "alojarla" en la pc que desees. Con eso, el puerto 80 de dicha pc debe ya ser visible desde el exterior.

Bye

acertij022
22-01-2008, 14:11:48
Yo lo que aria es conectarme atravez de idHTTP a una pagina externa el cual te diga de que ip venis ejemplo los proxyJudge (http://www2.dokidoki.ne.jp/tomocrus/cgi-bin/check/prxjdg.cgi)
seria algo asi

Function MyIP():string;
var
Html,ADDR:string;
begin
Html:=idHTTP.Get('http://www2.dokidoki.ne.jp/tomocrus/cgi-bin/check/prxjdg.cgi');
if pos('REMOTE_ADDR',uppercase(Html))>0 then
begin
ADDR:=copy(Html,pos('REMOTE_ADDR',uppercase(Html))+11,length(Html));
ADDR:=copy(ADDR,1,pos(#10,ADDR)-1);
str1:='';
for int1:=1 to length(ADDR) do if ADDR[int1]in['0'..'9','.'] then Str1:=Str1+ADDR[int1];
ADDR:=Str1;
end;
Result:=ADDR;
end;


Espero haber sido de ayuda :cool: