elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Aporte][Batch] Funcion ID de red
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Aporte][Batch] Funcion ID de red  (Leído 2,097 veces)
Zomkar

Desconectado Desconectado

Mensajes: 180


Ver Perfil
[Aporte][Batch] Funcion ID de red
« en: 21 Mayo 2014, 04:32 am »

Bueno pues el funcionamiento de este script (llamemosle funcion) es el de averiguar la IP y a partir de esa información deducir el ID de red.

El ID de red para el que no lo sepa es sencillamente el rango de IP posibles en una red:
p. ej: en una red tipica clase C domestica, si la IP es 192.168.1.10 pues el ID es 192.168.1.0

No es que sea nada revolucionario pero si que si a alguien le hace falta le puede ahorrar el trabajo. La idea es usar éste codigo con call. (modificarlo)

Ahi va:

Código:
@echo off
REM PARA WIN7
REM LINEAS QUE PONE DEBUG SON LINEAS QUE HAY QUE DESCOMENTAR
REM PARA PODER ENCONTRAR FALLOS AL HACER EL CODIGO

setlocal EnableDelayedExpansion

set ip_address_string="IPv4"
Set IpIsDefined=0
set yo_cuento=0
SET "direccionIp="

call :GetIp
REM - PARA DEBUG - ECHO !direccionIp!

call :SetNetwId
pause
exit

:GetIp
echo Network Connection Test
for /f "usebackq tokens=2 delims=:" %%G in (`ipconfig ^| findstr /c:%ip_address_string%`) do (
 SET "direccionIp=%%G"
 SET /A yo_cuento=!yo_cuento! + 1
 IF !yo_cuento! GTR 3 goto :bucle_infinito_Getip
REM como se usa la expansion de variables - ver inicio del batch
REM es necesario hacer la comprobacion de un modo similar al que vemos debajo, para que IF
REM funcione como deseamos aunque no haya valores asignados
 IF "!direccionIp!"=="" goto :GetIp
 goto :eof
)

:SetNetwId
REM funcion pensada para redes clase C o sea donde nos importan los 3 primeros tokens
REM modificable a conveniencia
set yo_cuento=0
FOR /F  "usebackq tokens=1,2,3,4 delims=." %%H IN (`echo !direccionIp!`) do (
SET /A yo_cuento=!yo_cuento! + 1
SET TokenIp!yo_cuento!=%%H
SET /A yo_cuento=!yo_cuento! + 1
SET TokenIp!yo_cuento!=%%I
SET /A yo_cuento=!yo_cuento! + 1
SET TokenIp!yo_cuento!=%%J
SET /A yo_cuento=!yo_cuento! + 1
SET TokenIp!yo_cuento!=%%K
)
REM Quitar REM para DEBUG
REM ECHO !TokenIp1!
REM ECHO !TokenIp2!
REM ECHO !TokenIp3!
REM ECHO !TokenIp4!
Set NetworkId=!TokenIp1!.!TokenIp2!.!TokenIp3!.0
ECHO !NetworkId!
goto :eof

:bucle_infinito_Getip
Echo Imposible detectar IP, Cerrando..  
PAUSE  
EXIT

También es para que me deis alguna idea si la teneis, de cosas que tenga que controlar para evitar errores y no haya controlado, etc (dentro de lo razonable porque es batch).

No usé el coloreador de código porque no funciona bien y me lo modifica de:
Código:
SET TokenIp!yo_cuento!=%%H
a:
Código:
SET TokenIp!yo_cuento!=%% style="color: #448888;">H

Alguien sabe porque?

Bueno gracias y un saludo!!

PS: ahora que lo pienso debe ser un fallo bueno pero no creo que sea importante, o si?


« Última modificación: 21 Mayo 2014, 04:55 am por Zomkar » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Aporte][Batch] Funcion ID de red
« Respuesta #1 en: 21 Mayo 2014, 04:53 am »

por que basada en clases si eso desapareció hace muchos años? :s

para eso está la mascara....

busca la mascara de subred haces un xor y listo, porque puedes tener una subred por ejemplo 192.168.1.94 con mascara 255.255.255.192 y la ip de red (lo que tu le llamas la id) sería 192.168.1.64

así como puede ser la 172.30.0.1 y la direccion de red sería 172.16.0.0 (mascara 255.240.0.0)

no lo hago yo porque realmente poco se de batch (posiblemente lo haría en c++ o por  ser flojo, lo con php XD)


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Zomkar

Desconectado Desconectado

Mensajes: 180


Ver Perfil
Re: [Aporte][Batch] Funcion ID de red
« Respuesta #2 en: 21 Mayo 2014, 04:59 am »

vale, es cierto, no es el id de red verdadero.

para lo que yo necesito, me vale, ya que asumo máscaras estandar, pero es verdad que podria no servir.

mirare a ver si lo amplio para lo que comentas no tendria que ser muy dificil creo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] Aporte, Soy electronico
Scripting
Geormarsch 5 4,099 Último mensaje 9 Enero 2012, 10:24 am
por leogtz
[APORTE] [BATCH] Acentos en los programas Batch - La mejor solución
Scripting
Príncipe_Azul 5 13,134 Último mensaje 2 Mayo 2014, 00:09 am
por cyberalejo17
[APORTE] [BATCH] Files2List
Scripting
Eleкtro 2 2,166 Último mensaje 14 Abril 2014, 04:40 am
por Eleкtro
[aporte][batch] 3 en raya en batch
Scripting
shadowhunter 1 3,049 Último mensaje 24 Junio 2014, 12:55 pm
por shadowhunter
[Aporte] Mi función PHP para limpiar inputs
PHP
Alex_bro 0 1,850 Último mensaje 23 Julio 2015, 18:34 pm
por Alex_bro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines