Проверка доступности сетевых устройств на Golang

Есть необходимость проверять доступность сетевых устройств с вэб интерфейсами по списку айпишников из файла. Есть исходник из сети:

 package main

import (
 "fmt"
 "net/http"
)

const url = ""

func main() {
 check(url)
}

func check(url string) {
 fmt.Println("Проверяем устройство ", url)
 resp, err := http.Get(url)

 if err != nil {
   fmt.Printf("Ошибка соединения.)
   return
 }

 defer resp.Body.Close()
 if resp.StatusCode != 200 {
  fmt.Printf("ERROR. Статус: НЕ В СЕТИ!")
  return
 }
 fmt.Printf("Статус: ОК")
}

Нужно к нему как то прикрутить возможность читать строки из заданного файла. Понимаю что должен быть реализован цикл но написать правильно не могу.


Ответы (1 шт):

Автор решения: KoVadim

Открываете гугл (или другой любимый поисковик) и ищите по словам "golang read file line by line", находите первый попавшийся понравившийся пример, к примеру - https://programming.guide/go/read-file-line-by-line.html

И модифицируете

func main() {

    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()
    
    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        //fmt.Println(scanner.Text())
        check(scanner.Text())
    }
    
    if err := scanner.Err(); err != nil {
        log.Fatal(err)
    }
}

правда там может оказаться перевод строки, но я думаю, это уже легкая задача

→ Ссылка