Загрузка...

Script for checking http code of an array of ip addresses

Thread in Linux created by kioshka Nov 6, 2025. 300 views

  1. kioshka
    kioshka Topic starter Nov 6, 2025 3 Sep 13, 2025
    Короче. Есть у меня список из 18к ip. Мне из них нужно выудить те, которые хотя бы редирект (30x) или ОК (200)
    Руками, ясен пень, делать всё это не вариант. Решил написать скрипт.
    Вот сам скрипт

    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 код без всяких ошибок. Как можно обойти этот бред?
     
  2. el9in
    Попробуй добавить http:// в начале, он обязателен в скриптах.
     
    1. View previous comments (2)
    2. el9in
      avatarkioshka, так же добавь логирование что у тебя по итогу попадает в саму переменную $ip, может на стадии парсинга происходит проблема.
    3. kioshka Topic starter
      avatarel9in , этот момент я прошёл с парсингом, там уже было логирования и получается чистый 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
    4. kioshka Topic starter
      avatarel9in ,
      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}" " )
  3. el9in
    Добавь echo что выводит "http://$ip"
     
    1. View previous comments (4)
    2. kioshka Topic starter
      avatarel9in , Хорошо, а есть короткое руководство как мне это сделать?
    3. el9in
      avatarkioshka, вместо http:// > http:\/\/
    4. kioshka Topic starter
      avatarel9in ,
      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
  4. kioshka
    kioshka Topic starter Nov 6, 2025 3 Sep 13, 2025
    Попробовал провернуть такую штуку
    Http="
    echo "$Http""$ip"


    http_code=$(curl -o /dev/null -w "%{http_code}" "$Http""$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
     
    1. el9in
      avatarkioshka, мб он IP совсем не принимает, напиши на другом языке скрипт.
    2. kioshka Topic starter
      avatarel9in , так курл у меня съел прямой ip, вот я только не пойму почему он отказывается выполнять это в bash
    3. el9in
      avatarkioshka, скорее всего видит какой-то невидимый символ.
  5. kioshka
    kioshka Topic starter Nov 7, 2025 3 Sep 13, 2025
    Я нашёл проблему. Проблема в том, что почему-то Curl отказывается принимать ip из txt файла. Хотя нет дополнительных символов или ещё чего-то подобного. Видимо ему не нравится тип элемента
     
  6. kioshka
    Проблема решена, я перехожу на питон.
     
Loading...