| |
howtos:stress_test_script_with_apache_bench [19/03/2023 18:01] – created domingo | howtos:stress_test_script_with_apache_bench [19/03/2023 20:52] (current) – domingo |
---|
This script requires two support files, one for user-agent strings and one with the URI's requested. | This script requires two support files, one for user-agent strings and one with the URI's requested. |
| |
| <code> |
| #!/bin/bash |
| |
| # Define URLs, user agents, IP addresses, HTTP methods, and JSON payloads |
| target="127.0.0.1:3000" |
| host_header="Host: example.com" |
| urls=($(cat urls.txt)) |
| mapfile -t user_agent_list < user-agent.txt |
| ip_addresses=("127.0.1.1" "127.0.1.2" "127.0.1.3") |
| use_alternate_ips=1 |
| http_methods=("GET" "POST" "DELETE" "PUT" "OPTIONS" "XHR") |
| json_payloads=( |
| "{\"id\": %d, \"name\": \"John Doe\"}" |
| "{\"name\": \"John Doe\", \"age\": %d}" |
| "{\"username\": \"johndoe\", \"password\": \"pa$$word\"}" |
| "{\"email\": \"johndoe@example.com\", \"phone\": \"555-555-5555\"}" |
| "{\"name\": \"John Doe\", \"age\": 30, \"city\": \"New York\"}" |
| "{\"title\": \"The Catcher in the Rye\", \"author\": \"J.D. Salinger\", \"published\": 1951}" |
| "{\"username\": \"johndoe\", \"password\": \"password123\", \"email\": \"johndoe@example.com\"}" |
| "{\"product\": \"iPhone 13\", \"brand\": \"Apple\", \"price\": 999}" |
| "{\"first_name\": \"Jane\", \"last_name\": \"Doe\", \"birthdate\": \"1990-05-15\", \"gender\": \"female\"}" |
| "{\"destination\": \"Tokyo\", \"departure_date\": \"2023-06-01\", \"return_date\": \"2023-06-15\", \"passengers\": 2}" |
| "{\"product\": \"MacBook Air\", \"brand\": \"Apple\", \"price\": 1299, \"specs\": {\"processor\": \"M1 chip\", \"memory\": \"8GB\", \"storage\": \"512GB SSD\"}}" |
| "{\"name\": \"Jane's Restaurant\", \"location\": {\"address\": \"123 Main St\", \"city\": \"New York\", \"state\": \"NY\", \"zip\": \"10001\"}}" |
| "{\"customer_id\": 1234, \"order_items\": [{\"product\": \"iPhone 13\", \"quantity\": 1}, {\"product\": \"AirPods Pro\", \"quantity\": 2}], \"total_price\": 2197}" |
| "{\"title\": \"The Great Gatsby\", \"author\": \"F. Scott Fitzgerald\", \"published\": 1925, \"characters\": [{\"name\": \"Jay Gatsby\", \"age\": 32}, {\"name\": \"Daisy Buchanan\", \"age\": 23}]}" |
| "{\"provider\": \"google\", \"access_token\": \"abc123\"}" |
| "{\"provider\": \"facebook\", \"access_token\": \"xyz456\"}" |
| "{\"provider\": \"twitter\", \"access_token\": \"pqr789\"}" |
| "{\"username\": \"johndoe\", \"password\": \"password123\", \"otp_code\": \"123456\"}" |
| "{\"email\": \"johndoe@example.com\", \"password\": \"password123\", \"sms_code\": \"789012\"}" |
| "{\"phone\": \"555-1234\", \"password\": \"password123\", \"push_notification\": true}" |
| "{\"email\": \"johndoe@example.com\", \"new_password\": \"newpassword123\", \"confirm_password\": \"newpassword123\"}" |
| "{\"username\": \"johndoe\", \"security_question\": \"What is your mother's maiden name?\", \"security_answer\": \"Smith\", \"new_password\": \"newpassword123\", \"confirm_password\": \"newpassword123\"}" |
| "{\"phone\": \"555-1234\", \"verification_code\": \"123456\", \"new_password\": \"newpassword123\", \"confirm_password\": \"newpassword123\"}" |
| "{\"username\": \"johndoe\", \"password\": \"password123\"}" |
| "{\"email\": \"johndoe@example.com\", \"password\": \"password123\"}" |
| "{\"phone\": \"555-1234\", \"password\": \"password123\"}" |
| "{\"grant_type\": \"refresh_token\", \"refresh_token\": \"xyz789\", \"client_id\": \"123456\", \"client_secret\": \"abcdefg\"}" |
| "{\"grant_type\": \"client_credentials\", \"client_id\": \"123456\", \"client_secret\": \"abcdefg\", \"scope\": \"read write\"}" |
| "{\"grant_type\": \"password\", \"username\": \"johndoe\", \"password\": \"password123\", \"client_id\": \"123456\", \"client_secret\": \"abcdefg\"}" |
| "{\"grant_type\": \"authorization_code\", \"code\": \"abc123\", \"redirect_uri\": \"https://example.com/callback\", \"client_id\": \"123456\", \"client_secret\": \"abcdefg\", \"scope\": \"read write\", \"state\": \"xyz789\", \"nonce\": \"123456\"}" |
| "{\"grant_type\": \"client_credentials\", \"client_id\": \"123456\", \"client_secret\": \"abcdefg\", \"audience\": \"https://api.example.com\"}" |
| "{\"grant_type\": \"password\", \"username\": \"johndoe\", \"password\": \"password123\", \"client_id\": \"123456\", \"client_secret\": \"abcdefg\", \"scope\": \"openid profile\"}" |
| "{\"grant_type\": \"authorization_code\", \"code\": \"abc123\", \"redirect_uri\": \"https://example.com/callback\", \"client_id\": \"123456\", \"client_secret\": \"abcdefg\", \"scope\": \"read write\", \"state\": \"xyz789\"}" |
| "{\"grant_type\": \"authorization_code\", \"code\": \"abc123\", \"redirect_uri\": \"https://example.com/callback\"}" |
| "{\"grant_type\": \"client_credentials\", \"client_id\": \"123456\", \"client_secret\": \"abcdefg\"}" |
| "{\"grant_type\": \"password\", \"username\": \"johndoe\", \"password\": \"password123\"}" |
| "{\"email\": \"johndoe@example.com\", \"security_question\": \"What is your favorite color?\", \"security_answer\": \"Purple\", \"new_password\": \"N3wP\@ssw0rd123\!\", \"confirm_password\": \"N3wP\@ssw0rd123\!\"}" |
| "{\"username\": \"johndoe\", \"old_password\": \"s3cureP\@ssw0rd\", \"new_password\": \"N3wP\@ssw0rd123\!\", \"confirm_password\": \"N3wP\@ssw0rd123\!\"}" |
| "{\"phone\": \"555-1234\", \"verification_method\": \"email\", \"verification_code\": \"123456\", \"new_password\": \"N3wP\@ssw0rd123\!\", \"confirm_password\": \"N3wP\@ssw0rd123\!\"}" |
| "{\"username\": \"johndoe\", \"password\": \"P@ssw0rd123\!\", \"remember_me\": true}" |
| "{\"email\": \"johndoe\@example.com\", \"password\": \"s3cureP\@ssw0rd\", \"two_factor_code\": \"123456\"}" |
| "{\"phone\": \"555-1234\", \"password\": \"C0mpl3xP@ssw0rd\!\", \"fingerprint\": true}" |
| ) |
| |
| # Define HTTP headers |
| http_headers=( |
| "Accept: */*" |
| "Accept-Encoding: gzip, deflate, br" |
| "Accept-Language: en-US,en;q=0.5" |
| "Connection: keep-alive" |
| "Content-Length: $(($RANDOM%1000+1))" |
| "DNT: 1" |
| "Origin: https://www.google.com" |
| "Referer: https://www.google.com/" |
| "Cache-Control: no-cache" |
| "Pragma: no-cache" |
| "If-Modified-Since: $(date -R -d '1 year ago')" |
| "If-None-Match: W/$(openssl rand -hex 4)" |
| "ETag: W/$(openssl rand -hex 4)" |
| "Expires: $(date -R -d '+1 day')" |
| "Last-Modified: $(date -R -d '1 year ago')" |
| "Keep-Alive: timeout=5, max=100" |
| "TE: trailers, deflate" |
| "Upgrade-Insecure-Requests: 1" |
| ) |
| |
| # Loop 10 times |
| for i in $(seq 1 10); do |
| # Choose a random URL, user agent, IP address, and HTTP method |
| url=${urls[$RANDOM % ${#urls[@]}]} |
| user_agent=${user_agent_list[$RANDOM % ${#user_agent_list[@]}]} |
| user_agent=$(echo $user_agent|sed 's/\"//g') |
| ip_address=${ip_addresses[$RANDOM % ${#ip_addresses[@]}]} |
| http_method=${http_methods[$RANDOM % ${#http_methods[@]}]} |
| |
| # Choose a random number of HTTP headers |
| num_http_headers=$((1 + RANDOM % ${#http_headers[@]})) |
| headers="" |
| for j in $(seq 1 $num_http_headers); do |
| header=${http_headers[$RANDOM % ${#http_headers[@]}]} |
| headers="$headers -H '$header'" |
| done |
| |
| # Format the payload and content type headers if the method is POST or PUT or XHR |
| if [ "$http_method" == "POST" ] || [ "$http_method" == "PUT" ] || [ "$http_method" == "XHR" ]; then |
| json_payload=${json_payloads[$RANDOM % ${#json_payloads[@]}]} |
| echo $json_payload > /tmp/data.json |
| content_type_header="-H 'Content-Type: application/json'" |
| payload_option='-p /tmp/data.json' |
| else |
| json_payload="" |
| content_type_header="" |
| payload_option="" |
| fi |
| #concurrent=$((RANDOM % 20 + 1)) |
| concurrent=5000 |
| #number_request=$((RANDOM % 100 + 100)) |
| number_request=1000000 |
| |
| |
| if [ $use_alternate_ips ]; then |
| ab_command="-r -c $concurrent -n $number_request -H '$host_header' $headers -H 'User-Agent: $user_agent' $content_type_header $payload_option -B $ip_address -k -s 60 http://$target$url &" |
| else |
| ab_command="-r -c $concurrent -n $number_request -H '$host_header' $headers -H 'User-Agent: $user_agent' $content_type_header $payload_option -k -s 60 http://$target$url &" |
| fi |
| |
| echo "AB command: $ab_command" |
| |
| eval ab $ab_command |
| |
| done |
| </code> |
| |
| The file urls.txt could look like this (taken from browsing OWASP Juiceshop): |
| <file> |
| / |
| /103.js |
| /ae.svg |
| /api |
| /api/Addresss |
| /api/Addresss/ |
| /api/Addresss/7 |
| /api/Cards |
| /api/Challenges |
| /api/Challenges/ |
| /api/Challenges/?name=Score%20Board |
| /api/Complaints |
| /api/Complaints/ |
| /api/Complaints/2 |
| /api/Feedbacks |
| /api/Feedbacks/ |
| /api/Feedbacks/8 |
| /api/Quantitys |
| /api/Quantitys/ |
| /api/Recycles |
| /api/Recycles/ |
| /api/SecurityAnswers |
| /api/SecurityAnswers/ |
| /api/SecurityAnswers/20 |
| /api/SecurityQuestions |
| /api/SecurityQuestions/ |
| /api/Users |
| /api/Users/ |
| /api/Users/21 |
| /assets |
| /assets/i18n |
| /assets/i18n/da_DK.json |
| /assets/i18n/en.json |
| /assets/public |
| /assets/public/favicon_js.ico |
| /assets/public/images |
| /assets/public/images/carousel |
| /assets/public/images/carousel/1.jpg |
| /assets/public/images/carousel/2.jpg |
| /assets/public/images/carousel/3.jpg |
| /assets/public/images/carousel/4.jpg |
| /assets/public/images/carousel/5.png |
| /assets/public/images/carousel/6.jpg |
| /assets/public/images/carousel/7.jpg |
| /assets/public/images/ChatbotAvatar.png |
| /assets/public/images/deluxe |
| /assets/public/images/deluxe/blankBoxes.png |
| /assets/public/images/hackingInstructor.png |
| /assets/public/images/JuiceShop_Logo.png |
| /assets/public/images/padding |
| /assets/public/images/padding/81px.png |
| /assets/public/images/products |
| /assets/public/images/products/3d_keychain.jpg |
| /assets/public/images/products/apple_juice.jpg |
| /assets/public/images/products/apple_pressings.jpg |
| /assets/public/images/products/artwork2.jpg |
| /assets/public/images/products/banana_juice.jpg |
| /assets/public/images/products/card_alpha.jpg |
| /assets/public/images/products/carrot_juice.jpeg |
| /assets/public/images/products/coaster.jpg |
| /assets/public/images/products/cover_small.jpg |
| /assets/public/images/products/eggfruit_juice.jpg |
| /assets/public/images/products/fan_facemask.jpg |
| /assets/public/images/products/fan_girlie.jpg |
| /assets/public/images/products/fan_hoodie.jpg |
| /assets/public/images/products/fan_mug.jpg |
| /assets/public/images/products/fan_shirt.jpg |
| /assets/public/images/products/fruit_press.jpg |
| /assets/public/images/products/green_smoothie.jpg |
| /assets/public/images/products/holo_sticker.png |
| /assets/public/images/products/iron-on.jpg |
| /assets/public/images/products/lemon_juice.jpg |
| /assets/public/images/products/magnets.jpg |
| /assets/public/images/products/melon_bike.jpeg |
| /assets/public/images/products/no-results.png |
| /assets/public/images/products/orange_juice.jpg |
| /assets/public/images/products/permafrost.jpg |
| /assets/public/images/products/quince.jpg |
| /assets/public/images/products/raspberry_juice.jpg |
| /assets/public/images/products/snakes_ladders.jpg |
| /assets/public/images/products/snakes_ladders_m.jpg |
| /assets/public/images/products/sticker_page.jpg |
| /assets/public/images/products/sticker_single.jpg |
| /assets/public/images/products/strawberry_juice.jpeg |
| /assets/public/images/products/tattoo.jpg |
| /assets/public/images/products/velcro-patch.jpg |
| /assets/public/images/products/woodruff_syrup.jpg |
| /assets/public/images/uploads |
| /assets/public/images/uploads/assets |
| /assets/public/images/uploads/assets/public |
| /assets/public/images/uploads/assets/public/favicon_js.ico |
| /assets/public/images/uploads/default.svg |
| /assets/public/images/uploads/%F0%9F%98%BC- |
| /assets/public/images/uploads/favorite-hiking-place.png |
| /assets/public/images/uploads/IMG_4253.jpg |
| /assets/public/images/uploads/magn(et)ificent!-1571814229653.jpg |
| /assets/public/images/uploads/main.js |
| /assets/public/images/uploads/my-rare-collectors-item!-[%CC%B2%CC%85$%CC%B2%CC%85(%CC%B2%CC%85-%CD%A1%C2%B0-%CD%9C%CA%96-%CD%A1%C2%B0%CC%B2%CC%85)%CC%B2%CC%85$%CC%B2%CC%85]-1572603645543.jpg |
| /assets/public/images/uploads/polyfills.js |
| /assets/public/images/uploads/runtime.js |
| /assets/public/images/uploads/styles.css |
| /assets/public/images/uploads/vendor.js |
| /az.svg |
| /bg.svg |
| /br.svg |
| /ch.svg |
| /cn.svg |
| /cz.svg |
| /de.svg |
| /dk.svg |
| /ee.svg |
| /es-ct.svg |
| /es.svg |
| /favicon.ico |
| /fi.svg |
| /font-mfizz.woff |
| /fr.svg |
| /ftp |
| /ftp/legal.md |
| /gb.svg |
| /ge.svg |
| /gr.svg |
| /hk.svg |
| /hu.svg |
| /id.svg |
| /ie.svg |
| /il.svg |
| /in.svg |
| /it.svg |
| /jp.svg |
| /kr.svg |
| /lv.svg |
| /main.js |
| /MaterialIcons-Regular.woff2 |
| /mm.svg |
| /nl.svg |
| /no.svg |
| /pl.svg |
| /polyfills.js |
| /pt.svg |
| /redirect |
| /redirect?to=https://github.com/bkimminich/juice-shop |
| /redirect?to=http://shop.spreadshirt.com/juiceshop |
| /rest |
| /rest/2fa |
| /rest/2fa/setup |
| /rest/2fa/status |
| /rest/admin |
| /rest/admin/application-configuration |
| /rest/admin/application-version |
| /rest/basket |
| /rest/basket/6 |
| /rest/basket/6/coupon |
| /rest/basket/6/coupon/2sfg546411 |
| /rest/captcha |
| /rest/captcha/ |
| /rest/chatbot |
| /rest/chatbot/respond |
| /rest/chatbot/status |
| /rest/continue-code |
| /rest/deluxe-membership |
| /rest/image-captcha |
| /rest/image-captcha/ |
| /rest/languages |
| /rest/memories |
| /rest/memories/ |
| /rest/order-history |
| /rest/products |
| /rest/products/1 |
| /rest/products/1/reviews |
| /rest/products/24 |
| /rest/products/24/reviews |
| /rest/products/30 |
| /rest/products/30/reviews |
| /rest/products/search |
| /rest/products/search?q= |
| /rest/user |
| /rest/user/data-export |
| /rest/user/login |
| /rest/user/whoami |
| /rest/wallet |
| /rest/wallet/balance |
| /ro.svg |
| /runtime.js |
| /ru.svg |
| /se.svg |
| /si.svg |
| /socket.io |
| /socket.io/ |
| /socket.io/?EIO=4&transport=polling&t=ORutb_B&sid=XMdaU3pmAjQENRZNAAAE |
| /socket.io/?EIO=4&transport=polling&t=ORutbx3 |
| /socket.io/?EIO=4&transport=polling&t=ORutbze&sid=XMdaU3pmAjQENRZNAAAE |
| /socket.io/?EIO=4&transport=polling&t=ORutbzg&sid=XMdaU3pmAjQENRZNAAAE |
| /socket.io/?EIO=4&transport=polling&t=ORuuo3q |
| /socket.io/?EIO=4&transport=polling&t=ORuuo4I&sid=cCy37VLGBluPs5BfAAAI |
| /socket.io/?EIO=4&transport=polling&t=ORuuo4Y&sid=cCy37VLGBluPs5BfAAAI |
| /socket.io/?EIO=4&transport=polling&t=ORuuOHH |
| /socket.io/?EIO=4&transport=polling&t=ORuuOHn&sid=Eyv3Lj-FXKo289kQAAAG |
| /socket.io/?EIO=4&transport=polling&t=ORuuOI3&sid=Eyv3Lj-FXKo289kQAAAG |
| /socket.io/?EIO=4&transport=polling&t=ORuuvji&sid=59XaACWeoq5greXzAAAK |
| /socket.io/?EIO=4&transport=polling&t=ORuuvjK |
| /socket.io/?EIO=4&transport=polling&t=ORuuvj-&sid=59XaACWeoq5greXzAAAK |
| /socket.io/?EIO=4&transport=websocket&sid=59XaACWeoq5greXzAAAK |
| /socket.io/?EIO=4&transport=websocket&sid=cCy37VLGBluPs5BfAAAI |
| /socket.io/?EIO=4&transport=websocket&sid=Eyv3Lj-FXKo289kQAAAG |
| /socket.io/?EIO=4&transport=websocket&sid=XMdaU3pmAjQENRZNAAAE |
| /styles.css |
| /th.svg |
| /tn.svg |
| /tr.svg |
| /tutorial.js |
| /tw.svg |
| /ua.svg |
| /us.svg |
| /vendor.js |
| </file> |
| |
| And the user-agent.txt could be like this: |
| <file> |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" |
| "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:88.0) Gecko/20100101 Firefox/88.0" |
| "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.37" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.37" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Safari/605.1.15" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1" |
| "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; AS; rv:11.0) like Gecko" |
| "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko" |
| "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" |
| "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/91.0.4472.80 Mobile/15E148 Safari/604.1" |
| "Mozilla/5.0 (Linux; Android 11; SM-G998U1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Mobile Safari/537.36" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:88.0) Gecko/20100101 Firefox/88.0" |
| "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/32.0 Mobile/15E148 Safari/605.1.15" |
| "Mozilla/5.0 (Android 11; Mobile; rv:89.0) Gecko/89.0 Firefox/89.0" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.37" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.37" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Mobile/15E148 Safari/604.1 EdgiOS/46.12.4" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" |
| "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/91.0.4472.80 Mobile/15E148 Safari/604.1" |
| "Mozilla/5.0 (Linux; Android 11; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Mobile Safari/537.36" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:88.0) Gecko/20100101 Firefox/88.0" |
| "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/34.0 Mobile/15E148 Safari/605.1.15" |
| "Mozilla/5.0 (Android 11; Mobile; rv:89.0) Gecko/89.0 Firefox/89.0" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.37" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.37" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/46.9.9 Mobile/15E148 Safari/605.1.15" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyExplorer/1.0.0 Safari/537.36" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyExplorer/2.0.0 Safari/537.36" |
| "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyExplorer/3.0.0 Safari/537.36" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GalaxyExplorer/4.0.0 Mobile/15E148 Safari/604.1" |
| "Mozilla/5.0 (Linux; Android 11; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyExplorer/5.0.0 Mobile Safari/537.36" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) OceanWave/1.0.0 Safari/537.36" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) OceanWave/2.0.0 Safari/537.36" |
| "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) OceanWave/3.0.0 Safari/537.36" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) OceanWave/4.0.0 Mobile/15E148 Safari/604.1" |
| "Mozilla/5.0 (Linux; Android 11; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) OceanWave/5.0.0 Mobile Safari/537.36" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) PixelNavigator/1.0.0 Safari/537.36" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) PixelNavigator/2.0.0 Safari/537.36" |
| "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) PixelNavigator/3.0.0 Safari/537.36" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) PixelNavigator/4.0.0 Mobile/15E148 Safari/604.1" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyVoyager/1.0.0 Safari/537.36" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyVoyager/2.0.0 Safari/537.36" |
| "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyVoyager/3.0.0 Safari/537.36" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GalaxyVoyager/4.0.0 Mobile/15E148 Safari/604.1" |
| "Mozilla/5.0 (Linux; Android 11; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyVoyager/5.0.0 Mobile Safari/537.36" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyVoyager/6.0.0 Safari/537.36" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyVoyager/7.0.0 Safari/537.36" |
| "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyVoyager/8.0.0 Safari/537.36" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GalaxyVoyager/9.0.0 Mobile/15E148 Safari/604.1" |
| "Mozilla/5.0 (Linux; Android 12; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) GalaxyVoyager/10.0.0 Mobile Safari/537.36" |
| "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) OceanExplorer/1.0.0 Safari/537.36" |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) OceanExplorer/2.0.0 Safari/537.36" |
| "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) OceanExplorer/3.0.0 Safari/537.36" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) OceanExplorer/4.0.0 Mobile/15E148 Safari/604.1" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1 (Windows NT 10.0; Win64; x64)" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Mobile/15E148 Safari/604.1 (Windows NT 10.0; Win64; x64)" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/29.0 Mobile/15E148 Safari/605.1.15 (Windows NT 10.0; Win64; x64)" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Mobile/15E148 Safari/604.1 Edg/87.0.664.75 (Windows NT 10.0; Win64; x64)" |
| "Opera/9.80 (iPhone; Opera Mini/16.0.14/1416; U; en) Presto/2.12.423 Version/12.16 (Windows NT 10.0; Win64; x64)" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1 (Windows NT 10.0; Win64; x64)" |
| "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Mobile/15E148 Safari/604.1 (Windows NT 10.0; Win64; x64)" |
| "Mozilla/5.0 (Android 11; Mobile; rv:88.0) Gecko/88.0 Firefox/88.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X; Windows NT 10.0; Win64; x64)" |
| "Mozilla/5.0 (Linux; Android 11; SM-G998U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Mobile Safari/537.36 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X; Windows NT 10.0; Win64; x64)" |
| "Opera/9.80 (Android; Opera Mini/16.0.14/1416; U; en) Presto/2.12.423 Version/12.16 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X; Windows NT 10.0; Win64; x64)" |
| </file> |
| |
| Note, not all user-agent strings are real. |