Загрузка...

Script for checking http code of an array of ip addresses

Thread in Linux created by kioshka Nov 6, 2025. 311 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. kioshka Topic starter
      avatarel9in , в каком именно моменте добавить? Перед $ip?
    2. el9in
      avatarkioshka, сейчас у тебя идут $ip Я так предполагаю в чистом виде 1.1.1.1, теперь нужно сделать .
    3. el9in
      avatarkioshka, так же добавь логирование что у тебя по итогу попадает в саму переменную $ip, может на стадии парсинга происходит проблема.
    4. View the next comments (2)
  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...