Функция net.LookupPort

Функция net.LookupPort выполняет поиск номера порта по его строковому имени. В первый параметр передается сетевой протокол (например, "tcp" или "udp"), во второй параметр передается имя сервиса (например, "http", "ssh" или "smtp"). Функция возвращает номер порта в виде числа типа int и ошибку, если порт не найден.

Синтаксис

gonet.LookupPort(network, service)

Пример

Давайте получим номер порта для протокола TCP и сервиса HTTP:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  port, err := net.LookupPort("tcp", "http")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(port)
}

Результат выполнения кода:

go80

Пример

Давайте получим номер порта для протокола UDP и сервиса DNS:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  port, err := net.LookupPort("udp", "dns")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(port)
}

Результат выполнения кода:

go53

Пример

Давайте попробуем получить порт для несуществующего сервиса:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  port, err := net.LookupPort("tcp", "unknown_service")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(port)
}

Результат выполнения кода:

go"Error: lookup unknown_service: unknown port"

Смотрите также

  • функцию net.LookupHost,
    которая выполняет поиск IP-адресов по имени хоста
  • функцию net.SplitHostPort,
    которая разделяет строку host:port на отдельные компоненты
  • функцию net.JoinHostPort,
    которая объединяет хост и порт в одну строку
  • функцию net.Dial,
    которая устанавливает сетевое соединение