geoip.go 908 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package exprhelpers
  2. import (
  3. "net"
  4. )
  5. func GeoIPEnrich(params ...any) (any, error) {
  6. if geoIPCityReader == nil {
  7. return nil, nil
  8. }
  9. ip := params[0].(string)
  10. parsedIP := net.ParseIP(ip)
  11. city, err := geoIPCityReader.City(parsedIP)
  12. if err != nil {
  13. return nil, err
  14. }
  15. return city, nil
  16. }
  17. func GeoIPASNEnrich(params ...any) (any, error) {
  18. if geoIPASNReader == nil {
  19. return nil, nil
  20. }
  21. ip := params[0].(string)
  22. parsedIP := net.ParseIP(ip)
  23. asn, err := geoIPASNReader.ASN(parsedIP)
  24. if err != nil {
  25. return nil, err
  26. }
  27. return asn, nil
  28. }
  29. func GeoIPRangeEnrich(params ...any) (any, error) {
  30. if geoIPRangeReader == nil {
  31. return nil, nil
  32. }
  33. ip := params[0].(string)
  34. var dummy interface{}
  35. parsedIP := net.ParseIP(ip)
  36. rangeIP, ok, err := geoIPRangeReader.LookupNetwork(parsedIP, &dummy)
  37. if err != nil {
  38. return nil, err
  39. }
  40. if !ok {
  41. return nil, nil
  42. }
  43. return rangeIP, nil
  44. }