31 lines
615 B
Go
31 lines
615 B
Go
|
package tools
|
||
|
|
||
|
import (
|
||
|
"net"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
func IsIPInUse(targetIP string) (bool, error) {
|
||
|
// Получаем список всех сетевых интерфейсов
|
||
|
interfaces, err := net.Interfaces()
|
||
|
if err != nil {
|
||
|
return false, err
|
||
|
}
|
||
|
|
||
|
for _, iface := range interfaces {
|
||
|
// Получаем адреса для каждого интерфейса
|
||
|
addrs, err := iface.Addrs()
|
||
|
if err != nil {
|
||
|
return false, err
|
||
|
}
|
||
|
|
||
|
for _, addr := range addrs {
|
||
|
if strings.Split(addr.String(), "/")[0] == targetIP {
|
||
|
return true, nil
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return false, nil // Адрес не найден
|
||
|
}
|