Skip to content

Commit

Permalink
Revert "rework IsLocalIP using standard library functions (#358)"
Browse files Browse the repository at this point in the history
This reverts commit bbaa951.
  • Loading branch information
azukaar authored Dec 15, 2024
1 parent bbaa951 commit d97492a
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 18 deletions.
4 changes: 2 additions & 2 deletions .clabot
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"contributors": ["azukaar", "jwr1", "Jogai", "InterN0te", "catmandx", "revam", "Kawanaao", "davis4acca", "george-radu-cs", "BearTS", "lilkidsuave", "ryan-schubert", "madejackson", "r41d"],
"contributors": ["azukaar", "jwr1", "Jogai", "InterN0te", "catmandx", "revam", "Kawanaao", "davis4acca", "george-radu-cs", "BearTS", "lilkidsuave", "ryan-schubert", "madejackson"],
"message": "We require contributors to sign our [Contributor License Agreement](https://github.com/azukaar/Cosmos-Server/blob/master/cla.md). In order for us to review and merge your code, add yourself to the .clabot file as contributor, as a way of signing the CLA."
}
}
23 changes: 7 additions & 16 deletions src/utils/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -878,26 +878,17 @@ func Exec(cmd string, args ...string) (string, error) {
}

func IsLocalIP(ip string) bool {
// explicit localhost
if ip == "localhost" {
// IPv4 specific local addresses
if strings.HasPrefix(ip, "192.168.") || strings.HasPrefix(ip, "10.") || strings.HasPrefix(ip, "172.") || ip == "127.0.0.1" || ip == "localhost" {
return true
}
parsed := osnet.ParseIP(ip)
// check for loopback or private address space using go std lib
if parsed.IsLoopback() || parsed.IsPrivate() {
// IPv6 specific local addresses
if strings.HasPrefix(ip, "fe80:") || strings.HasPrefix(ip, "fc00:") || strings.HasPrefix(ip, "fd00:") || ip == "::1" {
return true
}
// more private IPv4 address ranges
if ip4 := parsed.To4(); ip4 != nil {
// https://en.wikipedia.org/wiki/Reserved_IP_addresses
// 100.64.0.0 - 100.127.255.255 (100.64/10 prefix)
// 192.0.0.0 - 192.0.0.255 (192.0.0.0/24 prefix)
return (ip4[0] == 100 && ip4[1]&0x40 == 64) ||
(ip4[0] == 192 && ip4[1] == 0 && ip4[2] == 0)
}
// Handling cases where IPv6 might be enclosed in brackets
if strings.HasPrefix(ip, "[") && strings.HasSuffix(ip, "]") {
return IsLocalIP(strings.TrimSuffix(strings.TrimPrefix(ip, "["), "]"))
if strings.HasPrefix(ip, "[fe80:") || strings.HasPrefix(ip, "[fc00:") || strings.HasPrefix(ip, "[fd00:") || ip == "[::1]" {
return true
}
return false
}
Expand Down Expand Up @@ -984,4 +975,4 @@ func CheckInternet() {
if err != nil {
MajorError("Your server has no internet connection!", err)
}
}
}

0 comments on commit d97492a

Please sign in to comment.