Duda IP !!!

Iniciado por Garfield07, 13 Noviembre 2010, 11:36 AM

0 Miembros y 1 Visitante están viendo este tema.

Garfield07

Buenas, escribo este post para preguntar lo siguiente: ¿Como puedo sacar una IP de un sistema, cuando tengo un router (conex. privada)?

Para obtener la IP, lo que hice fue un sencillo programa, abajo posteado, que me dijese la IP y el puerto de quien se conectase a mi ordenador. El programa espera una conex. en determinado puerto, y si alguien se conecta, consigo su IP.  El caso es que mis pruebas no funcionan debido a que al iniciar el programa resulta que al obtener una conex. que yo abro desde Firefox me dice la IP de mi ordenador, privada: 192.168....
Lo cual no sirve. Estoy programando en C, Linux, ADSL

Alguna idea en el codigo, u forma?
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <sys/socket.h>

#include <arpa/inet.h>



int sockfd, newsock;



int finalizar (int state)

{

printf("[+] Finalizando...");

close (sockfd);

        close (newsock);

printf("\t[OK]\n\n");

exit (state);

}



int main ()

{

printf ("\n");

printf ("#***************************************#\n");

printf ("#       -[ GetIP - by Sagrini ]-        #\n");

printf ("#  -----------------------------------  #\n");

printf ("#          Hacking programming          #\n");

printf ("#***************************************#\n\n\n");



struct sockaddr_in host, client;

int a=sizeof (struct sockaddr);

char pass [30];



printf("[+] Creando el Socket...");



if ((sockfd=socket (2, 1, 0))!=-1) printf ("[OK]\n");

else {printf("[FAIL]\n"); finalizar (1);}



host.sin_port=htons(31337);

host.sin_family=AF_INET;

host.sin_addr.s_addr=0;

memset (host.sin_zero, 0, 8);



printf ("[+] Bindeando...");

if(bind(sockfd,(struct sockaddr*)&host,sizeof(host))==-1) {printf("\t[FAIL]\n"); finalizar (1);}

else printf ("\t[OK]\n");



printf ("[+] Listening...");

if(listen(sockfd,5)==-1) {printf("\t[FAIL]\n");finalizar (1);}

else printf("\t[OK]\n");



printf("[+] Esperando cliente...");

if((newsock=accept(sockfd, (struct sockaddr*)&client, &a))==-1) {printf("[FAIL]\n");finalizar (1);}

else printf("[OK]\n\n");



printf("[+] Conexion establecida con %s:%d\n", inet_ntoa (client.sin_addr), ntohs (client.sin_port));;

finalizar (0);

}



Gracias


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

[L]ord [R]NA

Estas programando en C, Linux y ADSL... WTF?

Garfield07

Perdonad el despiste. Es C, aunque creo que se nota, aunque compile en C++ es mas propio de C


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo