Autonomous System
AS328176
Last fetched
AS328176 is operated by ITTX Telecoms (Pty) Ltd - ITTX Telecoms (Pty) Ltd, registered in ZA, and announces 6 prefixes to 2 BGP neighbours. AS328176 has a reputation score of 14.1 (NEUTRAL).
Nutrition Label
Routing footprint
- Announced prefixes
- 6
- BGP neighbours
- 2
- RPKI ROAs
- 10
- MOAS conflicts
- 0
- Facilities
- 11
- Internet exchanges
- 3
Infrastructure presence
Internet exchanges (3 total)
Facilities (11 total)
- Teraco Johannesburg Campus, South Africa
- Teraco CT1 Cape Town, South Africa
- xneelo JNB1 (Formerly Hetzner SA)
- OADC - Parklands
- Africa Data Centres, Johannesburg JHB1, South Africa
- Africa Data Centres, Johannesburg JHB2, South Africa
- Digital Parks - Samrand
- NTT Johannesburg 1 Data Center (JOH1)
- OADC JNB1 - Johannesburg
- Teraco CT2 Cape Town, South Africa
- Equinix JN1 - Johannesburg
Route origin authorizations
A sample of 10 of this network’s 10 ROAs.
Upstreams
The networks that most often share an observed BGP path with AS328176.
Blast radius
Blast radius is temporarily unavailable.
The threat-density procedure returned no result for this ASN. Refresh in a moment to retry — fresh data is fetched on the next visit.
Peering ecosystem
A sample of 2 of this network’s 2 BGP neighbours.
Reputation
14.1reputation score (NEUTRAL)
AS328176 (ITTX Telecoms (Pty) Ltd - ITTX Telecoms (Pty) Ltd, ZA) has a reputation score of 61.7 (NEUTRAL).
- Threat density
- 67.7/100
- Graph metrics
- 55.0/100
- Historical behaviour
- 85.0/100
- Prefix age
- 20.0/100
These are reputation signals about the network as a whole, not a threat-feed verdict about a specific address.
Registration
- Registered to
- ITTX Telecoms (Pty) Ltd
- RIR
- AFRINIC
- Registered
- Thu, 08 Jun 2017 14:14:00 GMT
Threat-feed evidence
Related pages
Pivot from AS328176 into the prefixes, peers and country it routes for.
Queries
This ASN's full card — routing footprint, peers, conflicts and RIR facts.
MATCH (a:ASN {name: $asn})
OPTIONAL MATCH (a)-[:HAS_NAME]->(an:ASN_NAME)
OPTIONAL MATCH (a)-[:HAS_COUNTRY]->(co:COUNTRY)
OPTIONAL MATCH (a)-[:REGISTERED_BY]->(org:ORGANIZATION)
WITH a,
collect(an.name) AS operatorNames,
collect(co.name) AS countries,
collect(org.name) AS organizations
OPTIONAL MATCH (a)-[:ROUTES]->(prefix:ANNOUNCED_PREFIX)
WITH a, operatorNames, countries, organizations,
collect(prefix.name)[0..25] AS samplePrefixes
OPTIONAL MATCH (a)-[:BGP_NEIGHBOR]-(peer:ASN)
OPTIONAL MATCH (peer)-[:HAS_NAME]->(peern:ASN_NAME)
WITH a, operatorNames, countries, organizations, samplePrefixes,
collect({asn: peer.name, operator: peern.name})[0..25] AS samplePeers
OPTIONAL MATCH (a)<-[:CONFLICTS_WITH]-(conflict:ANNOUNCED_PREFIX)
WITH a, operatorNames, countries, organizations, samplePrefixes, samplePeers,
collect(conflict.name)[0..25] AS sampleConflicts
OPTIONAL MATCH (a)-[:HAS_SIGNAL]->(sig:THREAT_SIGNAL_TYPE)
WITH a, operatorNames, countries, organizations, samplePrefixes, samplePeers, sampleConflicts,
collect(DISTINCT sig.name) AS signals
OPTIONAL MATCH (a)-[:IX_MEMBER]->(ix:INTERNET_EXCHANGE)
WITH a, operatorNames, countries, organizations, samplePrefixes, samplePeers, sampleConflicts, signals,
collect({id: ix.id, name: ix.name})[0..25] AS sampleExchanges
OPTIONAL MATCH (a)-[:AS_PRESENT_AT]->(fac:FACILITY)
WITH a, operatorNames, countries, organizations, samplePrefixes, samplePeers, sampleConflicts, signals, sampleExchanges,
collect({id: fac.id, name: fac.name})[0..25] AS sampleFacilities
OPTIONAL MATCH (roa:ROA)-[:ROA_AUTHORIZES_ORIGIN]->(a)
WITH a, operatorNames, countries, organizations, samplePrefixes, samplePeers, sampleConflicts, signals, sampleExchanges, sampleFacilities,
collect({prefix: roa.prefix, maxLength: roa.maxLength})[0..10] AS sampleRoas
CALL { WITH a MATCH (a)-[:ROUTES]->(p:ANNOUNCED_PREFIX) RETURN count(p) AS prefixCount }
CALL { WITH a MATCH (a)-[:BGP_NEIGHBOR]-(n:ASN) RETURN count(n) AS peerCount }
CALL { WITH a MATCH (a)<-[:CONFLICTS_WITH]-(c:ANNOUNCED_PREFIX) RETURN count(c) AS conflictCount }
CALL { WITH a MATCH (a)-[:ROA_AUTHORIZES_ORIGIN]-(r:ROA) RETURN count(r) AS roaCount }
CALL { WITH a MATCH (a)-[:AS_PRESENT_AT]->(f:FACILITY) RETURN count(f) AS facilityCount }
CALL { WITH a MATCH (a)-[:IX_MEMBER]->(x:INTERNET_EXCHANGE) RETURN count(x) AS ixpCount }
RETURN a.name AS name,
a.rir AS rir,
a.orgName AS orgName,
a.asRank AS asRank,
a.coneAsns AS coneAsns,
a.conePrefixes AS conePrefixes,
a.coneAddresses AS coneAddresses,
a.registrationDate AS registrationDate,
a.reputationScore AS reputationScore,
a.reputationCategory AS reputationCategory,
a.overallThreatLevel AS overallThreatLevel,
a.abuseEmail AS abuseEmail,
a.hijackPostureScore AS hijackPostureScore,
a.hijackOriginMismatchCount AS hijackOriginMismatchCount,
a.routeLeakCount AS routeLeakCount,
a.routeLeakTypes AS routeLeakTypes,
a.degreeCustomer AS degreeCustomer,
a.degreePeer AS degreePeer,
a.degreeProvider AS degreeProvider,
operatorNames, countries, organizations,
samplePrefixes, samplePeers, sampleConflicts,
signals, sampleExchanges, sampleFacilities, sampleRoas,
prefixCount, peerCount, conflictCount, roaCount, facilityCount, ixpCountRun yourself →The five networks that most often share this ASN's observed BGP paths.
MATCH (a:ASN {name: $asn})<-[:BGP_PATH]-(b:BGP_PATH_OBSERVATION)
WITH b LIMIT 200
MATCH (b)-[:BGP_PATH]->(up:ASN)
WHERE up.name <> $asn
WITH up.name AS asn, count(*) AS observations
ORDER BY observations DESC
LIMIT 5
RETURN asn, observationsRun yourself →Or query Whisper from your own LLM workflow via the Whisper MCP server.