Skip to main content

IP2Loc City

Counts flow traffic by city, keyed by country code and city name from the IP2Location LITE DB3 database.

PropertyValue
GUID{E85FEB77-942C-411D-DF12-5DFCFCF2B932}
LayerL3 Network
InputPackets, Flows
Key type<CC>_<City> string
ImplementationLua — cg_ip2loc_region.lua (group), ip2location.lua (metering) (apps/analyzers/ip2location)
Trisul Appip2location (install from Trisul Apps)
Bucket / Topper60 s / 300 s
Enabled by defaultYes, after the app is installed

What it measures​

  • ip2location.lua runs as an sg_monitor script. It meters each flow when the probe flushes it to the hub, so it works for packet capture and for NetFlow/IPFIX/sFlow.
  • One IP is looked up per flow. If the Z side is in a home network, the A side is used. Otherwise the Z side is used.
  • IPv4 multicast and broadcast (keys E0. and above) are skipped. The database holds IPv4 ranges only, so IPv6 flows do not match.
  • The lookup uses the LevelDB file trisul-ip2loc-<engine>.level under //App/DataDirectory/plugins. You build it with installfeed.sh and your IP2Location download token. Without the database, nothing is metered.
  • Each flow updates one key, so there is no double counting.
  • Each key is also added as an edge vertex for the flow (add_flow_edges).

Keys​

One key is <country code>_<city name> from the CITY table. The compiler builds it from IP2LOCATION-LITE-DB3.CSV and removes all whitespace from the city name. The key carries no separate label: the script sets an empty label, so the key itself is what you read. The group is defined in cg_ip2loc_region.lua but is named IP2Loc City.

KeyMeaning
US_MountainViewMountain View, United States
IN_BengaluruBengaluru, India
SI_MetlikaMetlika, Slovenia

Special keys​

KeyMeaning
SYS:GROUP_TOTALSSum of every update made to this group in the interval. It equals the traffic of all flows that matched a database range.
-_-Range with no country or city in IP2Location, such as private address space.

Meter list​

IDNameTypeUnitsTopBottomDescription
0TotalVT_RATE_COUNTERBps4040A→Z bytes plus Z→A bytes of the flow.
1Upload ToVT_RATE_COUNTERBps4040Bytes from the home side to the looked-up IP. When the Z side is not home, this is A→Z bytes.
2Download FromVT_RATE_COUNTERBps4040Bytes from the looked-up IP to the home side.
3FlowsVT_COUNTERflows40401 for each flushed flow that matched.
4uniqsVT_GAUGEUniques2020Reserved cardinality slot. Not populated.
5uniqsVT_GAUGEUniques2020Reserved cardinality slot. Not populated.