Короче. Есть у меня список из 18к ip. Мне из них нужно выудить те, которые хотя бы редирект (30x) или ОК (200) Руками, ясен пень, делать всё это не вариант. Решил написать скрипт. Вот сам скрипт #!/bin/bash IP_LIST=() while read -r line; do IP_LIST+=("$line"); done < "ip.txt" for ip in "${IP_LIST[@]}"; do http_code=$(curl -o /dev/null -w "%{http_code}" $ip) if [ "$http_code" -ge 200 ] && [ "$http_code" -lt 400 ]; then echo "Проверка адреса: $ip" echo " -> Доступен (HTTP $http_code)" #else # echo "Ошибка" fi done Code #!/bin/bash IP_LIST=() while read -r line; do IP_LIST+=("$line"); done < "ip.txt" for ip in "${IP_LIST[@]}"; do http_code=$(curl -o /dev/null -w "%{http_code}" $ip) if [ "$http_code" -ge 200 ] && [ "$http_code" -lt 400 ]; then echo "Проверка адреса: $ip" echo " -> Доступен (HTTP $http_code)" #else # echo "Ошибка" fi done Столкнулся с таким выводом в консоли во время запуска: curl: (3) URL rejected: Malformed input to a URL function В итоге проблема возникает в http_code=$(curl -o /dev/null -w "%{http_code}" $ip) в опции -w "%{http_code}" . При этом когда запускаю curl с такими же параметрами, но без записи в переменную и ip ставлю руками, то всё работает прекрасно и выводит http код без всяких ошибок. Как можно обойти этот бред?
kioshka, так же добавь логирование что у тебя по итогу попадает в саму переменную $ip, может на стадии парсинга происходит проблема.
el9in , этот момент я прошёл с парсингом, там уже было логирования и получается чистый ip. Вот вставка из лога: START proverka ip addr = 203.180.72.35 curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function
el9in , START proverka ip addr = 203.180.72.35 curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function curl: (3) URL rejected: Malformed input to a URL function Это уже **** со строкой http_code=$(curl -o /dev/null -w "%{http_code}" " Loading... $ip" )
el9in , START proverka ip addr = 203.180.72.35 http:VV203.178.113.114 curl: (3) URL rejected: Malformed input to a URL function http:VV203.180.72.5 curl: (3) URL rejected: Malformed input to a URL function http:VV203.180.72.1 curl: (3) URL rejected: Malformed input to a URL function http:VV203.180.72.4 curl: (3) URL rejected: Malformed input to a URL function
Попробовал провернуть такую штуку Http=" Loading... " echo "$Http""$ip" http_code=$(curl -o /dev/null -w "%{http_code}" "$Http""$ip") Хоть **** конечно всё равно хромают. START proverka ip addr = 203.180.72.35 Loading... 203.178.113.114 curl: (3) URL rejected: Malformed input to a URL function Loading... 203.180.72.5 curl: (3) URL rejected: Malformed input to a URL function Loading... 203.180.72.1 curl: (3) URL rejected: Malformed input to a URL function Loading... 203.180.72.4 curl: (3) URL rejected: Malformed input to a URL function Loading... 203.180.72.26 curl: (3) URL rejected: Malformed input to a URL function Loading... 203.180.72.23 curl: (3) URL rejected: Malformed input to a URL function Loading... 203.180.72.12 curl: (3) URL rejected: Malformed input to a URL function Loading... 203.180.72.9 curl: (3) URL rejected: Malformed input to a URL function
el9in , так курл у меня съел прямой ip, вот я только не пойму почему он отказывается выполнять это в bash
Я нашёл проблему. Проблема в том, что почему-то Curl отказывается принимать ip из txt файла. Хотя нет дополнительных символов или ещё чего-то подобного. Видимо ему не нравится тип элемента