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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Temas
Páginas: [1]
1  Programación / Scripting / [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?
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines