mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 02:38:03 +00:00 
			
		
		
		
	cli/scripting example for creating portal bot enabled station
This commit is contained in:
		
							
								
								
									
										129
									
								
								lf_wifi_portal.bash
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										129
									
								
								lf_wifi_portal.bash
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,129 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| #  This script is an attempt to simplify the creation of stations and connections for said stations. | ||||
| #  One UDP connection will be created for each station. | ||||
| #  The number of stations, station SSID, encryption type and passphrase, number of packets to send, and transmit rates | ||||
| #  can all be configured with the below options. | ||||
| #  Required values are SSID, radio, and upstream port. | ||||
| #  Note: The upstream port will be designated to Endpoint A and station to Endpoint B. | ||||
| #  -m   Manager IP or hostname. | ||||
| #  -r   Resource number. | ||||
| #  -w   Which radio to use i.e. wiphy0 wiphy1 etc. | ||||
| #  -n   Number of stations to create. | ||||
| #  -s   SSID for stations. | ||||
| #  -e   Encryption type: open|wep|wpa|wpa2. | ||||
| #  -k   Passphrase for when AP is encrypted. | ||||
| #  -a   The upstream port to which station(s) will connect. | ||||
| #  -A   Transmit rate from upstream port. | ||||
| #  -B   Transmit rate from station. | ||||
| #  -p   Number of default UDP sized packets to send. | ||||
| #  -h   Help information. | ||||
|  | ||||
| #  Example usage: | ||||
| #  ./lf_wifi_fire.bash -m lf0350-1234 -r 1 -w wiphy0 -n 40 -s test-SSID -e wpa2 -k hello123 -a eth1 -A 56000 -B 2000000 -p 10000 | ||||
|  | ||||
| set -e | ||||
| #set -u | ||||
| set -o pipefail | ||||
|  | ||||
| clilog="--log_cli /tmp/clilog.txt" | ||||
|  | ||||
| #default values | ||||
| mgr=localhost | ||||
| resource=1 | ||||
| num_stas=40 | ||||
| num_packets=Infinite | ||||
| encryption=open | ||||
| passphrase='[BLANK]' | ||||
| rate_A=1000000 | ||||
| rate_B=1000000 | ||||
|  | ||||
| #other variables | ||||
| first_sta=100 | ||||
| flag_radio=false | ||||
| flag_ssid=false | ||||
| flag_port=false | ||||
|  | ||||
| show_help="This script is an attempt to simplify the creation of stations and connections for said stations. | ||||
| One UDP connection will be created for each station. | ||||
| The number of stations, station SSID, encryption type and passphrase, number of packets to send, and transmit rates | ||||
| can all be configured with the below options. | ||||
| Required values are SSID, radio, and upstream port. | ||||
| Note: The upstream port will be designated to Endpoint A and station to Endpoint B. | ||||
| -m   Manager IP or hostname. | ||||
| -r   Resource number. | ||||
| -w   Which radio to use i.e. wiphy0 wiphy1 etc. | ||||
| -n   Number of stations to create. | ||||
| -s   SSID for stations. | ||||
| -h   Help information. | ||||
|  | ||||
| Example usage: | ||||
| $0 -m lf0350-1234 -r 1 -w wiphy0 -n 40 -s test-SSID" | ||||
|  | ||||
| while getopts 'm:r:n:p:a:w:s:A:B:h' OPTION; do | ||||
|    case "$OPTION" in | ||||
|       m) | ||||
|         #manager | ||||
|         mgr="$OPTARG" | ||||
|         ;; | ||||
|       r) | ||||
|         #resource | ||||
|         resource="$OPTARG" | ||||
|         ;; | ||||
|       n) | ||||
|         #num stations | ||||
|         num_stas="$OPTARG" | ||||
|         ;; | ||||
|       w) | ||||
|         #radio | ||||
|         flag_radio=true | ||||
|         radio="$OPTARG" | ||||
|         ;; | ||||
|       s) | ||||
|         #ssid | ||||
|         flag_ssid=true | ||||
|         ssid="$OPTARG" | ||||
|         ;; | ||||
|       h) | ||||
|         #send help message | ||||
|         echo "$show_help" | ||||
|         exit 1 | ||||
|         ;; | ||||
| esac | ||||
| done | ||||
| shift "$(($OPTIND -1))" | ||||
|  | ||||
| #check for required getopts | ||||
| if [ "$flag_ssid" = false ] || [ "$flag_radio" = false ]; then | ||||
|    echo "Please provide at minimum the ssid (-s), and radio (-w). Run the script with -h for more information." | ||||
|    exit 1 | ||||
| fi | ||||
|  | ||||
| echo "Deleting old stations." | ||||
| ./lf_associate_ap.pl --mgr $mgr --resource $resource $clilog --action del_all_phy --port_del $radio | ||||
|  | ||||
| ./lf_firemod.pl --mgr $mgr --resource $resource --quiet yes  $clilog --action do_cmd \ | ||||
|  --cmd "nc_show_ports 1 $resource all 1" &>/dev/null | ||||
|  | ||||
| sleep 2 | ||||
|  | ||||
| echo "Creating new stations." | ||||
|  | ||||
| for n in `seq $first_sta $(($first_sta -1 + $num_stas))` ; do | ||||
|    # set disable_roam, mac, blank password, default rate, mode abgnAC  | ||||
|   ./lf_firemod.pl --mgr $mgr --resource $resource $clilog --action do_cmd --cmd \ | ||||
|   "add_sta 1 $resource $radio sta$n 2147483648 $ssid NA [BLANK] NA DEFAULT xx:xx:xx:xx:*:xx 8 DEFAULT NA NA NA NA 2147483648" | ||||
|  | ||||
|   # sets no_dhcp_restart, no_ifup_post, use_dhcp, current_flags, dhcp, dhcp_rls, no_dhcp_conn, skip_ifup_roam | ||||
|   ./lf_firemod.pl --mgr $mgr --resource $resource $clilog --action do_cmd --cmd \ | ||||
|   "set_port 1 $resource sta$n NA NA NA NA 1407377031036928 NA NA NA NA 5435834370" | ||||
|  | ||||
|    # see http://www.candelatech.com/cookbook.php?vol=cli&book=Changing+Station+POST_IFUP+Script+with+the+CLI+API | ||||
|    # see http://www.candelatech.com/lfcli_ug.php#set_wifi_extra2 | ||||
|    ./lf_firemod.pl --mgr $mgr --resource $resource $clilog --action do_cmd --cmd \ | ||||
|    "set_wifi_extra2 1 $resource sta$n 0 NA NA NA NA NA NA NA NA NA './portal-bot.pl --bot bp.pm --user username --pass secret --start_url http://www.google.com/  --ap_url http://10.41.3.250/ --login_form login.php --login_action login.php --logout_form logout.php'" | ||||
| done | ||||
|  | ||||
| echo "Updating stations to portal_bot..." | ||||
|  | ||||
| # | ||||
		Reference in New Issue
	
	Block a user
	 Jed Reynolds
					Jed Reynolds