CGI skripty: Porovnání verzí
Z Freenetis Wiki
					
										
					
					 (Založena nová stránka: = Získání MAC adresy =  Freenetis umožňuje aktuálně získávat MAC adresu kromě SNMP i pomocí vlastních CGI skriptů, které si umístíte přímo na dotyčný ro...)  | 
				 (→Získání MAC adresy z ISC DHCP serveru)  | 
				||
| (Není zobrazeno 8 mezilehlých verzí od 2 dalších uživatelů.) | |||
| Řádek 1: | Řádek 1: | ||
| + | [[en: CGI script]]  | ||
| + | [[ru: CGI скрипт]]  | ||
| + | |||
| + | Podporu pro CGI skripty je možné zapnout v sekci nastavení.  | ||
| + | |||
= Získání MAC adresy =  | = Získání MAC adresy =  | ||
| − | + | FreenetIS umožňuje aktuálně získávat MAC adresu kromě SNMP i pomocí vlastních CGI skriptů, které si umístíte přímo na dotyčný router. Daný skript musí vracet pouze MAC adresu.  | |
| + | |||
| + | Cesta ke skriptu je definována po povolení CGI skriptů v nastavení, přesněji v záložce Síť položkou '''URL pro ARP tabulku'''. Výchozí hodnota je '''<nowiki>http://{GATEWAY_IP_ADDRESS}/cgi-bin/arp.cgi?ip_address={IP_ADDRESS}</nowiki>''', kde parametry '''{GATEWAY_IP_ADDRESS}''' a '''{IP_ADDRESS}''' budou nahrazeny za IP adresu brány a IP adresu, ke kterému je hledána MAC adresa.    | ||
== Získání MAC adresy z ISC DHCP serveru ==  | == Získání MAC adresy z ISC DHCP serveru ==  | ||
| + | |||
| + | === Bash skript ===  | ||
| + | |||
| + | Instalace:  | ||
| + | |||
| + | * Zkopírujte skript do složky s CGI skripty  | ||
| + | * Vytvořte log  | ||
| + |  touch /var/log/arp.cgi.log && chmod 0777 /var/log/arp.cgi.log  | ||
| + | * Upravte konfiguraci (proměnná '''DHCP_LEASES_FILE''')  | ||
| + | |||
| + | Skript:  | ||
  #!/bin/bash  |   #!/bin/bash  | ||
| + |  ################################################################################  | ||
| + |  # This is a CGI script that allows to obtain MAC address from DHCP leases  | ||
| + |  # by IP address that id retrieved via URL parameter.  | ||
| + |  #  | ||
| + |  # Authors:  | ||
| + |  #	Michal Kliment <kliment@freenetis.org>  | ||
| + |  #	Ondrej Fibich <fibich@freenetis.org>  | ||
| + |  #  | ||
| + |  # Version:  | ||
| + |  #	0.1.2  | ||
| + |  ################################################################################  | ||
| − |   . /  | + |   # config part ##################################################################  | 
| + | |||
| + |  # log (must be chmoded to 0777)  | ||
| + |  LOG_FILE=/var/log/arp.cgi.log  | ||
| + | |||
| + |  # DHCP leases file (change this according to your system)  | ||
| + |  DHCP_LEASES_FILE=/var/lib/dhcp/dhcpd.leases  | ||
| + |  #DEBIAN lenny:# DHCP_LEASES_FILE=/var/lib/dhcp3/dhcpd.leases  | ||
| + | |||
| + |  # execute part #################################################################  | ||
| + | |||
| + |  # get IP address from URL param  | ||
| + |  ip_address=`echo $QUERY_STRING | sed 's/ip_address\=\([^&]\+\).*/\1/'`  | ||
| + | |||
| + |  # print header  | ||
  echo "Content-type: text/plain"  |   echo "Content-type: text/plain"  | ||
  echo ""  |   echo ""  | ||
| − | + | ||
| − | + |  # DHCP leases file not exist/not readable  | |
| + |  if [ ! -r "$DHCP_LEASES_FILE" ]; then  | ||
| + |  	echo "$DHCP_LEASES_FILE cannot be readed"  | ||
| + |  	exit 1  | ||
| + |  else  | ||
| + |  	# get MAC  | ||
| + |  	mac=`cat "$DHCP_LEASES_FILE" | grep -A6 "$ip_address" |    | ||
| + |  		 grep "hardware ethernet" | sed -e 's/^[ \t]*//' |   | ||
| + |  		 cut -d " " -f 3 | sed 's/;//'`  | ||
| + |  	# print MAC  | ||
| + |  	echo $mac  | ||
| + |  	# log if writable  | ||
| + |  	if [ -w "$LOG_FILE" ]; then  | ||
| + |  		echo "`date -u` [INFO] IP=$ip_address, MAC=$mac" >> "$LOG_FILE"  | ||
| + |  	fi  | ||
| + |  fi  | ||
Aktuální verze z 11. 2. 2014, 15:42
Podporu pro CGI skripty je možné zapnout v sekci nastavení.
Získání MAC adresy
FreenetIS umožňuje aktuálně získávat MAC adresu kromě SNMP i pomocí vlastních CGI skriptů, které si umístíte přímo na dotyčný router. Daný skript musí vracet pouze MAC adresu.
Cesta ke skriptu je definována po povolení CGI skriptů v nastavení, přesněji v záložce Síť položkou URL pro ARP tabulku. Výchozí hodnota je http://{GATEWAY_IP_ADDRESS}/cgi-bin/arp.cgi?ip_address={IP_ADDRESS}, kde parametry {GATEWAY_IP_ADDRESS} a {IP_ADDRESS} budou nahrazeny za IP adresu brány a IP adresu, ke kterému je hledána MAC adresa.
Získání MAC adresy z ISC DHCP serveru
Bash skript
Instalace:
- Zkopírujte skript do složky s CGI skripty
 - Vytvořte log
 
touch /var/log/arp.cgi.log && chmod 0777 /var/log/arp.cgi.log
- Upravte konfiguraci (proměnná DHCP_LEASES_FILE)
 
Skript:
#!/bin/bash ################################################################################ # This is a CGI script that allows to obtain MAC address from DHCP leases # by IP address that id retrieved via URL parameter. # # Authors: # Michal Kliment <kliment@freenetis.org> # Ondrej Fibich <fibich@freenetis.org> # # Version: # 0.1.2 ################################################################################ # config part ################################################################## # log (must be chmoded to 0777) LOG_FILE=/var/log/arp.cgi.log # DHCP leases file (change this according to your system) DHCP_LEASES_FILE=/var/lib/dhcp/dhcpd.leases #DEBIAN lenny:# DHCP_LEASES_FILE=/var/lib/dhcp3/dhcpd.leases # execute part ################################################################# # get IP address from URL param ip_address=`echo $QUERY_STRING | sed 's/ip_address\=\([^&]\+\).*/\1/'` # print header echo "Content-type: text/plain" echo "" # DHCP leases file not exist/not readable if [ ! -r "$DHCP_LEASES_FILE" ]; then echo "$DHCP_LEASES_FILE cannot be readed" exit 1 else # get MAC mac=`cat "$DHCP_LEASES_FILE" | grep -A6 "$ip_address" | grep "hardware ethernet" | sed -e 's/^[ \t]*//' | cut -d " " -f 3 | sed 's/;//'` # print MAC echo $mac # log if writable if [ -w "$LOG_FILE" ]; then echo "`date -u` [INFO] IP=$ip_address, MAC=$mac" >> "$LOG_FILE" fi fi