BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

ADSL/VDSL

Solución para limitar el ancho de banda cuando se comparte la conexión con un vecino

joanquro

Después de mucho devanarme los sesos con este tema, al final he dado con una solución sencilla que creo le puede interesar a mucha gente que comparte su conexión con un vecino. Resulta que yo la comparto con un vecino, el cual se conecta poco y, comparado conmigo, también descarga poco. Muchas veces se queja de que no le dejo navegar, y es porque a veces yo dejo de limitar mi conexión porque veo que no está conectado (haciendo un ping), y claro, si se me olvida, pues ya la tenemos liada.

La solución se basa en usar una combinación del programador de tareas, un archivo de proceso por lotes (.bat) y el programa Netlimiter. Naturalmente, funcionará si hay buena fe por parte de los dos vecinos, ambos deben tener instalado el Netlimiter y limitado por defecto en los valores que se considere oportuno.

A lo mejor estoy reinventando la rueda, pero ya me diréis si es así. A mí me va DE PERLAS, sólo descargo a tope cuando mi vecino tiene su PC apagado y viceversa. Cuando lo tiene encendido, limito automáticamente la velocidad de descarga y de subida.

Hay que crear un .bat, llamado por ejemplo "control.bat" con las siguientes instrucciones:

@echo off
REM ************************************************************************
REM HACEMOS PING A LA MAQUINA AFECTADA
REM ************************************************************************

ping -n 1 nombre_de_maquina_vecino > nul

REM ************************************************************************
REM SI EL RESULTADO NO ES CERO (MAQUINA NO ENCONTRADA),
REM MATAMOS EL PROCESO NETLIMITER.EXE
REM
REM EN CASO CONTRARIO SIGNIFICA QUE LA MAQUINA AFECTADA ESTA
REM FUNCIONANDO, POR TANTO INICIAMOS NETLIMITER.EXE
REM ************************************************************************

if not %errorlevel%==0 goto nolimitar
goto limitar

REM ************************************************************************
REM MATAMOS EL PROCESO NETLIMITER.EXE SOLO SI SE ESTA EJECUTANDO.
REM PARA ELLO MIRAMOS SI EXISTE EL FICHERO "NETLIMITER.TXT"
REM ************************************************************************

:nolimitar
if not exist netlimiter.txt goto fin
goto cerrar

:cerrar
taskkill.exe /F /IM netlimiter.exe > nul
del d:\netlimiter.txt > nul
echo %date% %time% SE CIERRA NETLIMITER >> d:\log.txt
goto fin

REM ************************************************************************
REM VERIFICAMOS SI YA SE HABIA ARRANCADO ANTERIORMENTE EL PROCESO
REM NETLIMITER.EXE MIRANDO SI EXISTE EL FICHERO CHIVATO "NETLIMITER.TXT".
REM SI EXISTE, NO HACEMOS NADA Y FINALIZAMOS, YA QUE EN ESE CASO NETLIMITER
REM YA ESTARA FUNCIONANDO Y NO HAY QUE INICIARLO DE NUEVO.
REM EN CASO CONTRARIO, CREAMOS EL FICHERO "NETLIMITER.TXT" E
REM INICIAMOS NETLIMITER.
REM ************************************************************************

:limitar
if exist netlimiter.txt goto fin
goto iniciar

:iniciar
echo netlimiter > d:\netlimiter.txt
c:
cd "c:\Archivos de Programa\netlimiter"
start netlimiter.exe

echo %date% %time% SE INICIA NETLIMITER >> d:\log.txt

:fin

Aclaraciones:

1) El programa Netlimiter no debe iniciarse con Windows, será el script el que lo arranque si es necesario.
2) Se debe crear un acceso directo al script "control.bat", para así poder hacer que se ejecute minimizado y no moleste.
3) El programa taskkill viene de serie con Windows XP, no sé en el caso de otros sistemas operativos.
4) El fichero de log no es obligatorio, claro, pero va bien para ir controlando cómo funciona el script.
5) El programa netlimiter cuando se arranca siempre arranca con las limitaciones que estuvieran configuradas antes de su cierre.
6) Yo tengo la tarea programada cada minuto, así me aseguro que en el momento en que mi vecino encienda su PC, al menos en media como mucho 30 segundos después ya estaré limitando mi acceso.

Y nada más, ya me diréis lo que pensáis.

👁 458
Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.