Ayuda con Script Bash  [INACTIVE]

Topics Programming. Not necessarily about the BrazilFW!

Ayuda con Script Bash

Mensagempor silverte » Dom Set 16, 2012 1:46 am

Estoy intentando hacerle una adaptacion al portal3 para implementar un portal en cual pueda usar para registrar los clientes a mi red y que ellos mismos selecciones su plan de navegacion y se agregue automaticamente el perfil al Qos, en esa parte estoy bien ya tengo parte del codigo que funciona, Pero necesito un script el que me ayude a cambiar la ip, es decir que funcione de esta forma, por cada usuario que pase por el portal le asigne a la reserva DHCP la ip 192.168.x.2 Donde X seria un valor cambiante de 1 en 1 por cada linea agregada al reserve.cfg.

No se si me entienda?
Ejemplo:
192.168.2.2
192.168.3.2
192.168.4.2
192.168.5.2
192.168.6.2
Y asi susesivamente
La problematica esta en como hacer para que ese valor X Cambie y permanesca cada vez que se use el script?
Avatar do usuário
silverte
BFW Participative
 
Mensagens: 171
Registrado em: Sáb Jan 09, 2010 3:52 pm
Localização: Puerto Ordaz, Venezuela
BrazilFW Box:

Re: Ayuda con Script Bash

Mensagempor silverte » Seg Set 17, 2012 3:24 pm

Alguna idea?
Avatar do usuário
silverte
BFW Participative
 
Mensagens: 171
Registrado em: Sáb Jan 09, 2010 3:52 pm
Localização: Puerto Ordaz, Venezuela
BrazilFW Box:

Re: Ayuda con Script Bash

Mensagempor Lelouch » Ter Set 18, 2012 11:35 am

Hola, Segun las ips que coloras usas subredes, verdad?
Código: Selecionar todos
192.168.2.2
192.168.3.2
192.168.4.2
192.168.5.2
192.168.6.2

Se me ocurren varias cosas, puedes usar una base de datos, o un archivo para ir guardando el ultimo numero de subred usado, o puedes tambien crear un codigo que te convierta de ip a int, y a ese int le vas sumando de a 1. También necesitarás un script de servicio que corra cada 5 o 10 segundos y que busque, aplique y recarge los cambios necearios en cada servicio, dhcp, qos, macxip, etc...

Un abrazo,



Lelouch
GNU/Linux addict, instead of Linux addict.
Sou, machigatteita no wa ore ja nai! Sekai no hou da!...
Sekai wa kawaru! Kaerareru...

Hangyaku no Rurūshu...

New scheme: BFW3(LB) - BFW3BridgeCache - ArgentoBridgeQoS
Avatar do usuário
Lelouch
BFW Beneméritos
 
Mensagens: 1324
Registrado em: Dom Out 05, 2008 7:39 pm
Localização: #!/bin/sh
BrazilFW Box: BrazilFW: RAM 3GB, ATHLON X2 5600+, HDD 160GB+120GB, LB: 2Mb+8Mb.
BFW3 BuildTree on GNU/Linux Archlinux 64 bits.

Re: Ayuda con Script Bash

Mensagempor silverte » Ter Set 18, 2012 11:43 am

Me podrias ayudar con ese codigo? Ya que no tengo idea de como hacer ese script de lectura para las subredes, puede ser con bases de datos ya que la implemente para guardar los datos de registro, se me ocurre lo siguiente, mi base de datos tambien me guarda la ip con la cual se registra el ciente, 192.168.0.X, existe una forma de hacer una llamada y que solo me devuelva el ultimo numer de esa linea? Es decir el valor de X?

Agradesco si me puedes ayudar, ya que no se nada de programacion todo lo que he hecho hasta ahora es gracias a mirar codigo y codigo probar para que funciona y luego, juaz copiar y pegar!


Saludos
Se hace lo que se puede! :lol:
Avatar do usuário
silverte
BFW Participative
 
Mensagens: 171
Registrado em: Sáb Jan 09, 2010 3:52 pm
Localização: Puerto Ordaz, Venezuela
BrazilFW Box:

Re: Ayuda con Script Bash

Mensagempor Lelouch » Ter Set 18, 2012 1:11 pm

silverte escreveu:...192.168.0.X, existe una forma de hacer una llamada y que solo me devuelva el ultimo numer de esa linea? Es decir el valor de X?...

Hola,

Pensé que usabas subredes, ya que antes colocaste que el número que debía cambiar era 192.168.X.2, o necesitas que tambien te devuelva ese?

Para el ultimo número, (e imaginando que usas un archivo a modo de log), harías algo como esto:
Código: Selecionar todos
last_line=$(tail -1 /partition/archivo.log)
Esa línea le asignará a la variable "last_line" el ultimo dato que esté guardado en el archivo llamado archivo.log y de ahí en adelante podrás referirte al último número usando la variable
Código: Selecionar todos
 ${last_line##*.}
Ejemplo: Supongamos que la última línea del archivo es "192.168.0.30", entonces si haces un "echo ${last_line##*.}" te mostrará en pantalla el "30".
GNU/Linux addict, instead of Linux addict.
Sou, machigatteita no wa ore ja nai! Sekai no hou da!...
Sekai wa kawaru! Kaerareru...

Hangyaku no Rurūshu...

New scheme: BFW3(LB) - BFW3BridgeCache - ArgentoBridgeQoS
Avatar do usuário
Lelouch
BFW Beneméritos
 
Mensagens: 1324
Registrado em: Dom Out 05, 2008 7:39 pm
Localização: #!/bin/sh
BrazilFW Box: BrazilFW: RAM 3GB, ATHLON X2 5600+, HDD 160GB+120GB, LB: 2Mb+8Mb.
BFW3 BuildTree on GNU/Linux Archlinux 64 bits.

Re: Ayuda con Script Bash

Mensagempor silverte » Ter Set 18, 2012 1:29 pm

Disculpa que te confunda, La idea es usar subredes, te explico detalladamente:

Estoy haciendo la adaptacion del portal 3 para usarlo como sistema de registro, el cual este al registrarse le pedira todos los datos personales al usuario y tambien el plan de datos de su preferencia, todo esto se guarda en un DB.

Que hara el portal?
Por Php:
Ecribira un perfil Qos segun el plan de datos seleccionado.
Escribira una Subred y respectivo amarrexIp al cliente, para esto necesito que tome el ultimo numero de la ip 192.168.0.x para convertirlo en 192.168.x.2, es decir en el rango de la subred. Para Que hago esto?

Sencillo, Como el Qos no deja navegar a ninguna ip Que no este registrada entonces yo creo el perfil 192.168.0.0/24 512 256 1024 para que los usuarios del registro puedan entrar a la red, una vez que pasen por el registro se le asigna automaticamente su Subred y al reiniciar la pc ya tiene acceso a internet con la velocidad de datos contratada.

Me serviria tomar el ultimo numero de la linea 192.168.0.x o Tambien el Campo ID que se le asigna al registrarse el usuario, pero no se como seria la sentencia para llamar el campo ID del usuario, conociendo esto lo guardo en una variable y se me haria facil crear las subredes.

Espero me entiendas :oops:
Avatar do usuário
silverte
BFW Participative
 
Mensagens: 171
Registrado em: Sáb Jan 09, 2010 3:52 pm
Localização: Puerto Ordaz, Venezuela
BrazilFW Box:

Re: Ayuda con Script Bash

Mensagempor Lelouch » Ter Set 18, 2012 2:59 pm

Hola de nuevo silverte.

Bueno, pues entiendo que es lo que quieres hacer, pero no entiendo como es que lo quieres hacer XD, jejejeje, bueno, ya te puse la forma de como obtener la ultima parte de la ip usando sh, ahora tengo varias preguntas:

Supongamos que uso mi laptop para conectarme a tu red, tu servidor bfw3 me asigna la ip 192.168.0.104, y cuando abro el navegador me sale una página:
¿esa página pertenece al portal3 intrusos y esta en php?
¿El formulario y la base de datos ya la tienes?
¿Que se debe hacer con la ip 192.168.0.104?
¿A donde envías esa ip 192.168.0.104 o para que la usas?
entiendo que tomarías el 104 y luego creas una subred 192.168.104.2, ¿es esto correcto?

PDTA: En php para obtener el último número de la ip puedes usar explode, algo así:
Código: Selecionar todos
$full_visitorip = $_SERVER['REMOTE_ADDR'];
$ipexploded = explode('.',$full_visitorip);
de ahí en adelante la ultima parte de la ip sería $ipexploded[3]
GNU/Linux addict, instead of Linux addict.
Sou, machigatteita no wa ore ja nai! Sekai no hou da!...
Sekai wa kawaru! Kaerareru...

Hangyaku no Rurūshu...

New scheme: BFW3(LB) - BFW3BridgeCache - ArgentoBridgeQoS
Avatar do usuário
Lelouch
BFW Beneméritos
 
Mensagens: 1324
Registrado em: Dom Out 05, 2008 7:39 pm
Localização: #!/bin/sh
BrazilFW Box: BrazilFW: RAM 3GB, ATHLON X2 5600+, HDD 160GB+120GB, LB: 2Mb+8Mb.
BFW3 BuildTree on GNU/Linux Archlinux 64 bits.

Re: Ayuda con Script Bash

Mensagempor silverte » Ter Set 18, 2012 3:18 pm

Supongamos que uso mi laptop para conectarme a tu red, tu servidor bfw3 me asigna la ip 192.168.0.104, y cuando abro el navegador me sale una página:
¿esa página pertenece al portal3 intrusos y esta en php?

No, la pagina pertenece a otro portal, el cual es de bloqueo Total y redireccion al puerto 80

¿El formulario y la base de datos ya la tienes?
ç
Listo, Y funcionando

¿Que se debe hacer con la ip 192.168.0.104?

El formulario de registro la optiene y lo guarda en la Db como Ip de registro

¿A donde envías esa ip 192.168.0.104 o para que la usas?

A la Db.

entiendo que tomarías el 104 y luego creas una subred 192.168.104.2, ¿es esto correcto?

Exactamente esa era la idea inicial pero ahora tras ver que en la base de dato tengo un campo ID que es auto_incrementable por cada usuario registrado,
esto me serviria para crear las subredes de forma mas ordenada, asi cuando me de ip muy lejanas como 192.168.0.102, 192.168,0.200, Etc. no me cree las subredes desordenadas. si no mediante el ID que ese incrementa de 1 en 1.

Gracias por tus respuestas, y disculpa la molestia \/ , pero ahora necesito es la sentencia para sacar el valor ID de la base de datos :oops:
Avatar do usuário
silverte
BFW Participative
 
Mensagens: 171
Registrado em: Sáb Jan 09, 2010 3:52 pm
Localização: Puerto Ordaz, Venezuela
BrazilFW Box:

Re: Ayuda con Script Bash

Mensagempor Lelouch » Ter Set 18, 2012 3:54 pm

silverte escreveu:...Gracias por tus respuestas, y disculpa la molestia \/ , pero ahora necesito es la sentencia para sacar el valor ID de la base de datos :oops:
Hola de nuevo, descuida no es molestia, solo espero que en caso tal que mi ayuda te sirva de algo, después publiques el resultado en el foro para que nos sirva a todos.

Existen varias formas para hacer la consulta, me gusta usar:
Código: Selecionar todos
echo "SELECT * FROM table WHERE row='ip_number'" | mysql database
, recuerda cambiar los datos *, table, row, ip y database por los que corresponda, si quieres solo el campo id pues cambias por esto:
Código: Selecionar todos
echo "SELECT id FROM table WHERE row='ip_number'" | mysql database
, para omitir el nombre de la columna usa "--skip-column-names" (ej.: ... | mysql database --skip-column-names).

Un abrazo,



Lelouch
GNU/Linux addict, instead of Linux addict.
Sou, machigatteita no wa ore ja nai! Sekai no hou da!...
Sekai wa kawaru! Kaerareru...

Hangyaku no Rurūshu...

New scheme: BFW3(LB) - BFW3BridgeCache - ArgentoBridgeQoS
Avatar do usuário
Lelouch
BFW Beneméritos
 
Mensagens: 1324
Registrado em: Dom Out 05, 2008 7:39 pm
Localização: #!/bin/sh
BrazilFW Box: BrazilFW: RAM 3GB, ATHLON X2 5600+, HDD 160GB+120GB, LB: 2Mb+8Mb.
BFW3 BuildTree on GNU/Linux Archlinux 64 bits.

Re: Ayuda con Script Bash

Mensagempor silverte » Qua Set 19, 2012 1:35 pm

Lelouch escreveu:
silverte escreveu:...Gracias por tus respuestas, y disculpa la molestia \/ , pero ahora necesito es la sentencia para sacar el valor ID de la base de datos :oops:
Hola de nuevo, descuida no es molestia, solo espero que en caso tal que mi ayuda te sirva de algo, después publiques el resultado en el foro para que nos sirva a todos.

Existen varias formas para hacer la consulta, me gusta usar:
Código: Selecionar todos
echo "SELECT * FROM table WHERE row='ip_number'" | mysql database
, recuerda cambiar los datos *, table, row, ip y database por los que corresponda, si quieres solo el campo id pues cambias por esto:
Código: Selecionar todos
echo "SELECT id FROM table WHERE row='ip_number'" | mysql database
, para omitir el nombre de la columna usa "--skip-column-names" (ej.: ... | mysql database --skip-column-names).

Un abrazo,



Lelouch


Desde Luego que lo publicare aca en el foro no te preocupes por eso! :o!

Y siguiendo con el tema, no me funciono ninguno de las llamadas que me escribiste, sera porque el código esta en un archivo php y no en .cgi?
Cual seria la llamada en php y que se guarde el resultado de la consulta en una variable?
Avatar do usuário
silverte
BFW Participative
 
Mensagens: 171
Registrado em: Sáb Jan 09, 2010 3:52 pm
Localização: Puerto Ordaz, Venezuela
BrazilFW Box:

Re: Ayuda con Script Bash

Mensagempor Lelouch » Qua Set 19, 2012 2:19 pm

Hola de nuevo,

Si, era para sh ya que pensé que ibas a llamar el sh desde php. La forma usando php es algo similar a esto:
Código: Selecionar todos
<?php
   $dbhost = 'localhost';
   $dbuser = 'root';
   $dbpass = 'pass';
   $dbname = 'db_name';
   $mysqlconn = mysql_connect($dbhost, $dbuser, $dbpass);
   mysql_select_db("$dbname", $mysqlconn);
   $result = mysql_query("SELECT * FROM tabla", $mysqlconn);
   echo "<p>content: ".mysql_result($result, 0, "text")."</p>";
?>


Un abrazo,



Lelouch
GNU/Linux addict, instead of Linux addict.
Sou, machigatteita no wa ore ja nai! Sekai no hou da!...
Sekai wa kawaru! Kaerareru...

Hangyaku no Rurūshu...

New scheme: BFW3(LB) - BFW3BridgeCache - ArgentoBridgeQoS
Avatar do usuário
Lelouch
BFW Beneméritos
 
Mensagens: 1324
Registrado em: Dom Out 05, 2008 7:39 pm
Localização: #!/bin/sh
BrazilFW Box: BrazilFW: RAM 3GB, ATHLON X2 5600+, HDD 160GB+120GB, LB: 2Mb+8Mb.
BFW3 BuildTree on GNU/Linux Archlinux 64 bits.


Voltar para Programming

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes

cron