[eside-ghost] Cambiar IP desde programa C o C++

zgor zgor en int80h.net
Sab Nov 5 10:41:17 CET 2005


Aupi tu!

>
> Como puedo hacer para desconectar el ordenador de internet, cambiar la 
> direccion IP y despues volverme a conectar con otra IP nueva desde un 
> programa? hecho en C o C++ por ejemplo y todo desde linux claro jejeje.
>
> E

algo asi como:

/---------------___ copy and paste billy ! ------------------

*int* *ztuntap_setIP*(*char* *ip_str)
{
     *struct* in_addr ipaddr;
     *struct* ifreq ir;
     *struct* sockaddr_in *sin = (*void* *) &ir.ifr_ifru.ifru_addr;
     *int* ctrl_sock;	  
	     
     
     debug(3,*"Trying to set ip: %s"*,ip_str);
     
     *if* (!inet_aton(ip_str,&ipaddr) )
     {
	
	     debug_error(*"Invalid IP Address"*);
	     *return* -1;
     }	  
     debug(4,*"TUNTAP SET IP addr = %08x\n\n"*,ipaddr.s_addr);

     ctrl_sock = socket(PF_INET, SOCK_DGRAM, 0);
     
     *if*(ctrl_sock < 0 )
     {
      	     debug_error(*"Cannot Allocate Socket"*);
	     *return* -1;
      }
     

      memset(&ir, 0, *sizeof*(ir));
      strcpy(ir.ifr_ifrn.ifrn_name, iface_name);

      sin->sin_family = AF_INET;
      sin->sin_addr.s_addr = ipaddr.s_addr;
      sin->sin_port = 0;
			
      *if* ( ioctl(ctrl_sock,SIOCSIFADDR,&ir)   < 0   ) 
      {
              debug_error(*"Failed to Assign IP Address"*);
              *return* -1;
      }

      close(ctrl_sock);
      
      *return* 0;
}


------------- END THE COPY Wox -------------


iwal hay alguna burrada, cuando lo hice medio copie pegue por ahi al 
garete XDD
para el netmask, broadcast, ... es iwal, pero en el IOCTL haz una llamada a:

SIOIFNETMASK por ejemplo en vez de SIOCSIFADDR


enga tio ! suerte !

ueueue



Más información sobre la lista de distribución eside-ghost