chore: clean .gitignore cache
This commit is contained in:
@@ -1,52 +0,0 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"net"
|
||||
|
||||
"github.com/Wikid82/charon/backend/internal/network"
|
||||
)
|
||||
|
||||
// IsPrivateIP checks if the given host string is a private IPv4 address.
|
||||
// Returns false for hostnames, invalid IPs, or public IP addresses.
|
||||
//
|
||||
// Deprecated: This function only checks IPv4. For comprehensive SSRF protection,
|
||||
// use network.IsPrivateIP() directly which handles IPv4, IPv6, and IPv4-mapped IPv6.
|
||||
func IsPrivateIP(host string) bool {
|
||||
ip := net.ParseIP(host)
|
||||
if ip == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// Ensure it's IPv4 (for backward compatibility)
|
||||
ip4 := ip.To4()
|
||||
if ip4 == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// Use centralized network.IsPrivateIP for consistent checking
|
||||
return network.IsPrivateIP(ip)
|
||||
}
|
||||
|
||||
// IsDockerBridgeIP checks if the given host string is likely a Docker bridge network IP.
|
||||
// Docker typically uses 172.17.x.x for the default bridge and 172.18-31.x.x for user-defined networks.
|
||||
// Returns false for hostnames, invalid IPs, or non-Docker IP addresses.
|
||||
func IsDockerBridgeIP(host string) bool {
|
||||
ip := net.ParseIP(host)
|
||||
if ip == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// Ensure it's IPv4
|
||||
ip4 := ip.To4()
|
||||
if ip4 == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// Docker bridge network CIDR range: 172.16.0.0/12
|
||||
_, dockerNetwork, err := net.ParseCIDR("172.16.0.0/12")
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
return dockerNetwork.Contains(ip4)
|
||||
}
|
||||
Reference in New Issue
Block a user