Skip to content

Instantly share code, notes, and snippets.

@micahstubbs micahstubbs/.block
Created Oct 6, 2018

Embed
What would you like to do?
Internet Interactive Map Iteration
license: MIT
height: 800
border: no

An interactive map of the BGP network topology. Each node represents an Autonomous System. The positioning of each AS is determined by the size of its customer cone (radius), and by the longitude of its geolocation (angle).

See also the 3D force-simulated version

Project developed during the CAIDA BGP hackathon 2016


this iteration updates the code to ES2017+ with the help of our friend lebab

an iteration on the Internet Interactive Map from @vastur


this iteration makes the code nice to work with, for my subjective definition of nice to work with :-)

prettier formatting and 2-space indentation

define(
[
'react',
'react-dom',
'jquery',
'underscore',
'cytoscape',
'cytoscape-panzoom',
'colors'
],
(React, ReactDOM, $, _, cytoscape, panzoom, Colors) => {
panzoom(cytoscape, $) // Register panzoom
const CytoscapeGraph = React.createClass({
const: {
REFRESH_STYLE_PAUSE: 300, // ms
MIN_EDGE_WIDTH: 0.15,
MAX_EDGE_WIDTH: 0.25,
NODE_SIZE: 2
},
componentDidMount() {
const props = this.props
const consts = this.const
const cs = (this._csGraph = cytoscape({
container: ReactDOM.findDOMNode(this),
layout: {
name: 'preset',
fit: false
},
minZoom: 1,
maxZoom: 100,
autoungrabify: true,
autolock: true,
hideEdgesOnViewport: true,
hideLabelsOnViewport: true,
textureOnViewport: true,
motionBlur: true,
style: [
{
selector: 'node',
style: {
width: this.const.NODE_SIZE,
height: this.const.NODE_SIZE,
'border-width': this.const.NODE_SIZE * 0.1,
'border-color': 'orange',
'background-color': 'yellow',
'background-opacity': 0.3
}
},
{
selector: 'edge',
style: {
'curve-style': 'haystack', // 'bezier'
width: 0.05,
opacity(el) {
return el.data('opacity')
},
'line-color': function(el) {
return el.data('color')
}
}
}
],
elements: {
nodes: props.nodes.map(node => ({
data: $.extend({ id: node.id }, node.nodeData),
position: {
x: node.x,
y: node.y
}
})),
edges: props.edges.map(edge => ({
data: {
source: edge.src,
target: edge.dst,
color: edge.color || 'lightgrey',
opacity: edge.opacity || 1
}
}))
}
})
.on('zoom', () => {
adjustElementSizes()
zoomOrPan()
})
.on('pan', zoomOrPan)
.on('mouseover', 'node', function() {
props.onNodeHover(this.data())
})
.on('select', 'node', function() {
props.onNodeClick(this.data())
}))
cs.panzoom({
zoomFactor: 0.1, // zoom factor per zoom tick
zoomDelay: 50, // how many ms between zoom ticks
minZoom: 1, // min zoom level
maxZoom: 100, // max zoom level
fitPadding: 0, // padding when fitting
panSpeed: 20, // how many ms in between pan ticks
panDistance: 40 // max pan distance per tick
})
function zoomOrPan() {
const pan = cs.pan()
props.onZoomOrPan(cs.zoom(), pan.x, pan.y)
}
var adjustElementSizes = _.debounce(
this.resetStyle,
consts.REFRESH_STYLE_PAUSE
)
},
render() {
return (
<div
style={{
width: this.props.width,
height: this.props.height
}}
/>
)
},
zoom(ratio) {
this._csGraph.zoom(ratio)
},
pan(x, y) {
this._csGraph.pan({ x, y })
},
getNodeById(id) {
return this._csGraph.getElementById(id)
},
resetStyle() {
const cs = this._csGraph
const zoom = cs.zoom()
const nodeSize = this.const.NODE_SIZE / zoom
cs
.style()
.selector('node')
.style({
width: nodeSize,
height: nodeSize,
'background-color': 'yellow',
'background-opacity': 0.3
})
.selector('edge')
.style({
width:
Math.min(
this.const.MIN_EDGE_WIDTH * zoom,
this.const.MAX_EDGE_WIDTH
) / zoom
})
.update()
}
})
return React.createClass({
getDefaultProps() {
return {
graphData: graphRandomGenerator(5, 10),
width: window.innerWidth,
height: window.innerHeight,
margin: 0,
selectedAs: null
}
},
getInitialState() {
return {
radialNodes: this._genRadialNodes(),
edges: this._getEdges()
}
},
componentDidMount() {
this.refs.radialGraph.zoom(1)
this.refs.radialGraph.pan(this.props.width / 2, this.props.height / 2)
},
componentWillReceiveProps(nextProps) {
if (
nextProps.width !== this.props.width ||
nextProps.height !== this.props.height ||
nextProps.graphData !== this.props.graphData
) {
this.setState({ radialNodes: this._genRadialNodes() })
}
},
render() {
return (
<CytoscapeGraph
ref="radialGraph"
nodes={this.state.radialNodes}
edges={this.state.edges}
width={this.props.width}
height={this.props.height}
onZoomOrPan={this._onZoomOrPan}
onNodeHover={this.props.onAsHover}
onNodeClick={this.props.onAsClick}
/>
)
},
_genRadialNodes() {
const rThis = this
const maxR =
Math.min(this.props.width, this.props.height) / 2 - this.props.margin
const maxConeSize = Math.max.apply(
null,
this.props.graphData.ases.map(asNode => asNode.customerConeSize)
)
return this.props.graphData.ases.map(node => {
const radius = rThis._getRadius(node.customerConeSize, maxConeSize)
console.log('radius from _genRadialNodes', radius)
return {
// Convert to radial coords
id: node.asn,
x: maxR * radius * Math.cos(-node.lon * Math.PI / 180),
y: maxR * radius * Math.sin(-node.lon * Math.PI / 180),
nodeData: node
}
})
},
_getEdges() {
const customerCones = {}
const maxConeSize = Math.max.apply(
null,
this.props.graphData.ases.map(asNode => {
customerCones[asNode.asn] = asNode.customerConeSize
return asNode.customerConeSize
})
)
return this.props.graphData.relationships.map(rel => {
if (!rel.hasOwnProperty('customerConeSize')) {
rel.customerConeSize = Math.min(
customerCones[rel.src],
customerCones[rel.dst]
)
}
return {
src: rel.src,
dst: rel.dst,
color: Colors.valueRgb(rel.customerConeSize, maxConeSize),
opacity: Colors.valueOpacity(rel.customerConeSize, maxConeSize)
}
})
},
_getRadius(coneSize, maxConeSize) {
// 0<=result<=1
return (
(Math.log(maxConeSize) - Math.log(coneSize)) /
(Math.log(maxConeSize) - Math.log(1)) *
0.99 +
0.01
)
},
_onZoomOrPan(zoom, panX, panY) {
const r = Math.min(this.props.width, this.props.height) / 2
const offsetX = -(panX - this.props.width / 2) / zoom / r
const offsetY = -(panY - this.props.height / 2) / zoom / r
const offsetR = Math.sqrt(Math.pow(offsetX, 2) + Math.pow(offsetY, 2))
let offsetAng = offsetR
? -Math.acos(offsetX / offsetR) / Math.PI * 180
: 0
const zoomRadius = 1 / zoom
if (offsetY < 0) {
// Complementary angle
offsetAng = 360 - offsetAng
}
this.props.onRadialViewportChange(zoomRadius, offsetR, offsetAng)
}
})
}
)
////
function graphRandomGenerator(nNodes, nEdges) {
const nodes = []
const edges = []
nNodes = Math.max(nNodes, 1)
nEdges = Math.abs(nEdges)
while (nEdges--) {
edges.push({
src: Math.round((nNodes - 1) * Math.random()),
dst: Math.round((nNodes - 1) * Math.random()),
type: 'peer'
})
}
while (nNodes--) {
nodes.push({
asn: nNodes,
customerConeSize: Math.random(),
lat: Math.random() * 180 - 90,
lon: Math.random() * 360 - 180
//x: Math.random(),
//y: Math.random()
})
}
return {
ases: nodes,
relationships: edges
}
}
define([], function() {
return [
{
population: '417910',
country: 'NZ',
city: 'Auckland',
lat: '-36.86667',
name: 'Auckland, NZ',
lon: '174.76667'
},
{
population: '363926',
country: 'NZ',
city: 'Christchurch',
lat: '-43.53333',
name: 'Christchurch, NZ',
lon: '172.63333'
},
{
population: '187282',
country: 'RU',
city: 'Petropavlovsk-kamchatsky',
lat: '53.04444',
name: 'Petropavlovsk-kamchatsky, RU',
lon: '158.65076'
},
{
population: '4627345',
country: 'AU',
city: 'Sydney',
lat: '-33.86785',
name: 'Sydney, AU',
lon: '151.20732'
},
{
population: '367752',
country: 'AU',
city: 'Canberra',
lat: '-35.28346',
name: 'Canberra, AU',
lon: '149.12807'
},
{
population: '4246375',
country: 'AU',
city: 'Melbourne',
lat: '-37.814',
name: 'Melbourne, AU',
lon: '144.96332'
},
{
population: '1883027',
country: 'JP',
city: 'Sapporo',
lat: '43.06667',
name: 'Sapporo, JP',
lon: '141.35'
},
{
population: '8336599',
country: 'JP',
city: 'Tokyo',
lat: '35.6895',
name: 'Tokyo, JP',
lon: '139.69171'
},
{
population: '2592413',
country: 'JP',
city: 'Osaka',
lat: '34.69374',
name: 'Osaka, JP',
lon: '135.50218'
},
{
population: '1392289',
country: 'JP',
city: 'Fukuoka',
lat: '33.6',
name: 'Fukuoka, JP',
lon: '130.41667'
},
{
population: '10349312',
country: 'KR',
city: 'Seoul',
lat: '37.566',
name: 'Seoul, KR',
lon: '126.9784'
},
{
population: '6255921',
country: 'CN',
city: 'Shenyang',
lat: '41.79222',
name: 'Shenyang, CN',
lon: '123.43278'
},
{
population: '22315474',
country: 'CN',
city: 'Shanghai',
lat: '31.22222',
name: 'Shanghai, CN',
lon: '121.45806'
},
{
population: '11716620',
country: 'CN',
city: 'Beijing',
lat: '39.9075',
name: 'Beijing, CN',
lon: '116.39723'
},
{
population: '11071424',
country: 'CN',
city: 'Guangzhou',
lat: '23.11667',
name: 'Guangzhou, CN',
lon: '113.25'
},
{
population: '6501190',
country: 'CN',
city: "Xi'an",
lat: '34.25833',
name: "Xi'an, CN",
lon: '108.92861'
},
{
population: '8540121',
country: 'ID',
city: 'Jakarta',
lat: '-6.21462',
name: 'Jakarta, ID',
lon: '106.84513'
},
{
population: '7415590',
country: 'CN',
city: 'Chengdu',
lat: '30.66667',
name: 'Chengdu, CN',
lon: '104.06667'
},
{
population: '5104476',
country: 'TH',
city: 'Bangkok',
lat: '13.75398',
name: 'Bangkok, TH',
lon: '100.50144'
},
{
population: '4477638',
country: 'MM',
city: 'Yangon',
lat: '16.80528',
name: 'Yangon, MM',
lon: '96.15611'
},
{
population: '10356500',
country: 'BD',
city: 'Dhaka',
lat: '23.7104',
name: 'Dhaka, BD',
lon: '90.40744'
},
{
population: '4631392',
country: 'IN',
city: 'Kolkata',
lat: '22.56263',
name: 'Kolkata, IN',
lon: '88.36304'
},
{
population: '1599920',
country: 'IN',
city: 'Patna',
lat: '25.61538',
name: 'Patna, IN',
lon: '85.10103'
},
{
population: '4328063',
country: 'IN',
city: 'Chennai',
lat: '13.08784',
name: 'Chennai, IN',
lon: '80.27847'
},
{
population: '10927986',
country: 'IN',
city: 'Delhi',
lat: '28.65195',
name: 'Delhi, IN',
lon: '77.23149'
},
{
population: '12691836',
country: 'IN',
city: 'Mumbai',
lat: '19.07283',
name: 'Mumbai, IN',
lon: '72.88261'
},
{
population: '3043532',
country: 'AF',
city: 'Kabul',
lat: '34.52813',
name: 'Kabul, AF',
lon: '69.17233'
},
{
population: '11624219',
country: 'PK',
city: 'Karachi',
lat: '24.9056',
name: 'Karachi, PK',
lon: '67.0822'
},
{
population: '1062919',
country: 'RU',
city: 'Chelyabinsk',
lat: '55.15402',
name: 'Chelyabinsk, RU',
lon: '61.42915'
},
{
population: '2307177',
country: 'IR',
city: 'Mashhad',
lat: '36.31559',
name: 'Mashhad, IR',
lon: '59.56796'
},
{
population: '1137347',
country: 'AE',
city: 'Dubai',
lat: '25.0657',
name: 'Dubai, AE',
lon: '55.17128'
},
{
population: '44099591',
country: 'IR',
city: 'Godarzi It',
lat: '35.73328',
name: 'Godarzi It, IR',
lon: '51.30714'
},
{
population: '2600000',
country: 'IQ',
city: 'Basrah',
lat: '30.50852',
name: 'Basrah, IQ',
lon: '47.7804'
},
{
population: '7216000',
country: 'IQ',
city: 'Baghdad',
lat: '33.34058',
name: 'Baghdad, IQ',
lon: '44.40088'
},
{
population: '2065597',
country: 'IQ',
city: 'Al Mawsil Al Jadidah',
lat: '36.33306',
name: 'Al Mawsil Al Jadidah, IQ',
lon: '43.1049'
},
{
population: '10381222',
country: 'RU',
city: 'Moscow',
lat: '55.75222',
name: 'Moscow, RU',
lon: '37.61556'
},
{
population: '3517182',
country: 'TR',
city: 'Ankara',
lat: '39.91987',
name: 'Ankara, TR',
lon: '32.85427'
},
{
population: '11174257',
country: 'TR',
city: 'Istanbul',
lat: '41.01384',
name: 'Istanbul, TR',
lon: '28.94966'
},
{
population: '2500603',
country: 'TR',
city: 'Izmir',
lat: '38.41273',
name: 'Izmir, TR',
lon: '27.13838'
},
{
population: '1152556',
country: 'BG',
city: 'Sofia',
lat: '42.69751',
name: 'Sofia, BG',
lon: '23.32415'
},
{
population: '3433441',
country: 'ZA',
city: 'Cape Town',
lat: '-33.92584',
name: 'Cape Town, ZA',
lon: '18.42322'
},
{
population: '7785965',
country: 'CD',
city: 'Kinshasa',
lat: '-4.32758',
name: 'Kinshasa, CD',
lon: '15.31357'
},
{
population: '3426354',
country: 'DE',
city: 'Berlin',
lat: '52.52437',
name: 'Berlin, DE',
lon: '13.41053'
},
{
population: '3626068',
country: 'NG',
city: 'Kano',
lat: '12.00012',
name: 'Kano, NG',
lon: '8.51672'
},
{
population: '3565108',
country: 'NG',
city: 'Ibadan',
lat: '7.37756',
name: 'Ibadan, NG',
lon: '3.90591'
},
{
population: '9000000',
country: 'NG',
city: 'Lagos',
lat: '6.45407',
name: 'Lagos, NG',
lon: '3.39467'
},
{
population: '3677115',
country: 'CI',
city: 'Abidjan',
lat: '5.30966',
name: 'Abidjan, CI',
lon: '-4.01266'
},
{
population: '3144909',
country: 'MA',
city: 'Casablanca',
lat: '33.58831',
name: 'Casablanca, MA',
lon: '-7.61138'
},
{
population: '1871242',
country: 'GN',
city: 'Camayenne',
lat: '9.535',
name: 'Camayenne, GN',
lon: '-13.68778'
},
{
population: '2476400',
country: 'SN',
city: 'Dakar',
lat: '14.6937',
name: 'Dakar, SN',
lon: '-17.44406'
},
{
population: '118918',
country: 'IS',
city: 'Reykjavik',
lat: '64.13548',
name: 'Reykjavik, IS',
lon: '-21.89541'
},
{
population: '1478098',
country: 'BR',
city: 'Recife',
lat: '-8.05389',
name: 'Recife, BR',
lon: '-34.88111'
},
{
population: '2711840',
country: 'BR',
city: 'Salvador',
lat: '-12.97111',
name: 'Salvador, BR',
lon: '-38.51083'
},
{
population: '744512',
country: 'BR',
city: 'Teresina',
lat: '-5.08917',
name: 'Teresina, BR',
lon: '-42.80194'
},
{
population: '10021295',
country: 'BR',
city: 'Sao Paulo',
lat: '-23.5475',
name: 'Sao Paulo, BR',
lon: '-46.63611'
},
{
population: '2207718',
country: 'BR',
city: 'Brasilia',
lat: '-15.77972',
name: 'Brasilia, BR',
lon: '-47.92972'
},
{
population: '1718421',
country: 'BR',
city: 'Curitiba',
lat: '-25.42778',
name: 'Curitiba, BR',
lon: '-49.27306'
},
{
population: '471832',
country: 'BR',
city: 'Londrina',
lat: '-23.31028',
name: 'Londrina, BR',
lon: '-51.16278'
},
{
population: '1372741',
country: 'BR',
city: 'Porto Alegre',
lat: '-30.03306',
name: 'Porto Alegre, BR',
lon: '-51.23'
},
{
population: '729151',
country: 'BR',
city: 'Campo Grande',
lat: '-20.44278',
name: 'Campo Grande, BR',
lon: '-54.64639'
},
{
population: '1270737',
country: 'UY',
city: 'Montevideo',
lat: '-34.90328',
name: 'Montevideo, UY',
lon: '-56.18816'
},
{
population: '13076300',
country: 'AR',
city: 'Buenos Aires',
lat: '-34.61315',
name: 'Buenos Aires, AR',
lon: '-58.37723'
},
{
population: '1598210',
country: 'BR',
city: 'Manaus',
lat: '-3.10194',
name: 'Manaus, BR',
lon: '-60.025'
},
{
population: '1364389',
country: 'BO',
city: 'Santa Cruz De La Sierra',
lat: '-17.78629',
name: 'Santa Cruz De La Sierra, BO',
lon: '-63.18117'
},
{
population: '1428214',
country: 'AR',
city: 'Cordoba',
lat: '-31.4135',
name: 'Cordoba, AR',
lon: '-64.18105'
},
{
population: '3000000',
country: 'VE',
city: 'Caracas',
lat: '10.48801',
name: 'Caracas, VE',
lon: '-66.87919'
},
{
population: '1754256',
country: 'VE',
city: 'Maracay',
lat: '10.23535',
name: 'Maracay, VE',
lon: '-67.59113'
},
{
population: '4837295',
country: 'CL',
city: 'Santiago',
lat: '-33.45694',
name: 'Santiago, CL',
lon: '-70.64827'
},
{
population: '2225000',
country: 'VE',
city: 'Maracaibo',
lat: '10.66663',
name: 'Maracaibo, VE',
lon: '-71.61245'
},
{
population: '8175133',
country: 'US',
city: 'New York City',
lat: '40.71427',
name: 'New York City, US',
lon: '-74.00597'
},
{
population: '7674366',
country: 'CO',
city: 'Bogota',
lat: '4.60971',
name: 'Bogota, CO',
lon: '-74.08175'
},
{
population: '3000000',
country: 'JM',
city: "Fitzroy's Elecctronics",
lat: '17.98234',
name: "Fitzroy's Elecctronics, JM",
lon: '-76.86918'
},
{
population: '7737002',
country: 'PE',
city: 'Lima',
lat: '-12.04318',
name: 'Lima, PE',
lon: '-77.02824'
},
{
population: '2600000',
country: 'CA',
city: 'Toronto',
lat: '43.70011',
name: 'Toronto, CA',
lon: '-79.4163'
},
{
population: '2163824',
country: 'CU',
city: 'Havana',
lat: '23.13302',
name: 'Havana, CU',
lon: '-82.38304'
},
{
population: '829718',
country: 'US',
city: 'Indianapolis',
lat: '39.76838',
name: 'Indianapolis, US',
lon: '-86.15804'
},
{
population: '973087',
country: 'NI',
city: 'Managua',
lat: '12.13282',
name: 'Managua, NI',
lon: '-86.2504'
},
{
population: '850848',
country: 'HN',
city: 'Tegucigalpa',
lat: '14.0818',
name: 'Tegucigalpa, HN',
lon: '-87.20681'
},
{
population: '2695598',
country: 'US',
city: 'Chicago',
lat: '41.85003',
name: 'Chicago, US',
lon: '-87.65005'
},
{
population: '646889',
country: 'US',
city: 'Memphis',
lat: '35.14953',
name: 'Memphis, US',
lon: '-90.04898'
},
{
population: '994938',
country: 'GT',
city: 'Guatemala City',
lat: '14.64072',
name: 'Guatemala City, GT',
lon: '-90.51327'
},
{
population: '2099451',
country: 'US',
city: 'Houston',
lat: '29.76328',
name: 'Houston, US',
lon: '-95.36327'
},
{
population: '1197816',
country: 'US',
city: 'Dallas',
lat: '32.78306',
name: 'Dallas, US',
lon: '-96.80667'
},
{
population: '1820888',
country: 'MX',
city: 'Iztapalapa',
lat: '19.35738',
name: 'Iztapalapa, MX',
lon: '-99.0671'
},
{
population: '12294193',
country: 'MX',
city: 'Mexico City',
lat: '19.42847',
name: 'Mexico City, MX',
lon: '-99.12766'
},
{
population: '1114626',
country: 'MX',
city: 'Leon',
lat: '21.13052',
name: 'Leon, MX',
lon: '-101.671'
},
{
population: '1640589',
country: 'MX',
city: 'Guadalajara',
lat: '20.66682',
name: 'Guadalajara, MX',
lon: '-103.39182'
},
{
population: '809232',
country: 'MX',
city: 'Chihuahua',
lat: '28.63528',
name: 'Chihuahua, MX',
lon: '-106.08889'
},
{
population: '1512354',
country: 'MX',
city: 'Ciudad Juarez',
lat: '31.73333',
name: 'Ciudad Juarez, MX',
lon: '-106.48333'
},
{
population: '520116',
country: 'US',
city: 'Tucson',
lat: '32.22174',
name: 'Tucson, US',
lon: '-110.92648'
},
{
population: '595811',
country: 'MX',
city: 'Hermosillo',
lat: '29.1026',
name: 'Hermosillo, MX',
lon: '-110.97732'
},
{
population: '1445632',
country: 'US',
city: 'Phoenix',
lat: '33.44838',
name: 'Phoenix, US',
lon: '-112.07404'
},
{
population: '1019942',
country: 'CA',
city: 'Calgary',
lat: '51.05011',
name: 'Calgary, CA',
lon: '-114.08529'
},
{
population: '1376457',
country: 'MX',
city: 'Tijuana',
lat: '32.5027',
name: 'Tijuana, MX',
lon: '-117.00371'
},
{
population: '3792621',
country: 'US',
city: 'Los Angeles',
lat: '34.05223',
name: 'Los Angeles, US',
lon: '-118.24368'
},
{
population: '945942',
country: 'US',
city: 'San Jose',
lat: '37.33939',
name: 'San Jose, US',
lon: '-121.89496'
},
{
population: '608660',
country: 'US',
city: 'Seattle',
lat: '47.60621',
name: 'Seattle, US',
lon: '-122.33207'
},
{
population: '805235',
country: 'US',
city: 'San Francisco',
lat: '37.77493',
name: 'San Francisco, US',
lon: '-122.41942'
},
{
population: '600000',
country: 'CA',
city: 'Vancouver',
lat: '49.24966',
name: 'Vancouver, CA',
lon: '-123.11934'
},
{
population: '291826',
country: 'US',
city: 'Anchorage',
lat: '61.21806',
name: 'Anchorage, US',
lon: '-149.90028'
},
{
population: '371657',
country: 'US',
city: 'Honolulu',
lat: '21.30694',
name: 'Honolulu, US',
lon: '-157.85833'
}
]
})
define([], () => {
function valueOpacity(value, value_max) {
if (value == null) {
value = 1
}
return Math.log(value) / Math.log(value_max) * 0.6 + 0.3
}
function valueRgb(value, value_max) {
if (value == null) {
value = 1
} else if (value <= 0.000001) {
value = 0.000001
}
const temp = Math.log(value) / Math.log(value_max);
//var hue = (360*(4+5+temp/8))%360;
const hue = temp * 0.7 + 0.5; //value;
const sat = 1;
const bri = 1;
// return "hsl("+hue+",100%,100%)";
// bri = .80*temp+.20;
//var color = "hsl("+hue+","+(100*sat)+"%,"+(100*bri)+"%)";
const rgb = hsvRgb(hue, sat, bri);
for (let i = 0; i < 3; i++) {
rgb[i] = rgb[i].toString(16)
while (rgb[i].length < 2) {
rgb[i] = `0${rgb[i]}`
}
}
const color = `#${rgb[0]}${rgb[1]}${rgb[2]}`;
return color
}
function hsvRgb(hue, sat, bri) {
let h = hue;
let s = sat;
let v = bri;
let r;
let g;
let b;
let i;
let f;
let p;
let q;
let t;
if (arguments.length === 1) {
;(s = h.s), (v = h.v), (h = h.h)
}
i = Math.floor(h * 6)
f = h * 6 - i
p = v * (1 - s)
q = v * (1 - f * s)
t = v * (1 - (1 - f) * s)
switch (i % 6) {
case 0:
;(r = v), (g = t), (b = p)
break
case 1:
;(r = q), (g = v), (b = p)
break
case 2:
;(r = p), (g = v), (b = t)
break
case 3:
;(r = p), (g = q), (b = v)
break
case 4:
;(r = t), (g = p), (b = v)
break
case 5:
;(r = v), (g = p), (b = q)
break
}
const rgb = [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
return rgb
}
return {
valueRgb,
valueOpacity
}
})
This file has been truncated, but you can view the full file.
{
"ases": [
{
"country": "US",
"orgName": "Qwest Communications Company, LLC",
"lat": 40.3664740686124,
"lon": -100.212673737156,
"asn": 209,
"customerConeSize": 3455
},
{
"country": "DE",
"orgName": "Deutsche Telekom AG",
"lat": 50.4623885482079,
"lon": 9.67597175146201,
"asn": 3320,
"customerConeSize": 3861
},
{
"country": "US",
"orgName": "Level 3 Communications, Inc.",
"lat": 40.1244055180577,
"lon": -96.3215075150665,
"asn": 3356,
"customerConeSize": 25879
},
{
"country": "US",
"orgName": "TATA COMMUNICATIONS (AMERICA) INC",
"lat": 58.1746462046415,
"lon": -44.7066542962368,
"asn": 6453,
"customerConeSize": 10354
},
{
"country": "US",
"orgName": "Synertech Systems",
"lat": 39.022,
"lon": -94.4645,
"asn": 19455,
"customerConeSize": 1
},
{
"country": "JP",
"orgName": "KDDI CORPORATION",
"lat": 35.6494239131322,
"lon": 138.252298104726,
"asn": 2516,
"customerConeSize": 884
},
{
"country": "US",
"orgName": "Intermountain Health Care",
"lat": 40.6982991397455,
"lon": -112.013548018961,
"asn": 11052,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Herbalife International of America, Inc.",
"lat": 33.838,
"lon": -118.293,
"asn": 55099,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Savvis",
"lat": 43.2646411461089,
"lon": -91.3799733886231,
"asn": 3561,
"customerConeSize": 827
},
{
"country": "US",
"orgName": "Bank of America",
"lat": 42.7333052893676,
"lon": -90.1721729846663,
"asn": 33730,
"customerConeSize": 1
},
{
"country": "NL",
"orgName": "Eweka Internet Services B.V.",
"lat": 52.3052577024883,
"lon": -71.3543233534246,
"asn": 12989,
"customerConeSize": 574
},
{
"country": "US",
"orgName": "Oregon Mutual Insurance Company",
"lat": 45.0985,
"lon": -123.207,
"asn": 54399,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Charter Communications",
"lat": 39.6090927709694,
"lon": -92.6931130541142,
"asn": 20115,
"customerConeSize": 302
},
{
"country": "US",
"orgName": "Vail Systems",
"lat": 41.3544478918867,
"lon": -92.2712452169841,
"asn": 19067,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Qwest Communications Company, LLC",
"lat": 37.1831003814437,
"lon": -91.6306443081703,
"asn": 22561,
"customerConeSize": 192
},
{
"country": "US",
"orgName": "Dell, Inc.",
"lat": 37.4263524865442,
"lon": -89.9613705011934,
"asn": 30614,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Internap Network Services Corporation",
"lat": 41.0835503846893,
"lon": -77.2491313824443,
"asn": 13789,
"customerConeSize": 171
},
{
"country": "US",
"orgName": "ENV",
"lat": 38.9498,
"lon": -77.0156,
"asn": 54922,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "DoD Network Information Center",
"lat": 39.1298544514149,
"lon": -91.9748890369252,
"asn": 721,
"customerConeSize": 164
},
{
"country": "US",
"orgName": "ARMLS",
"lat": 33.777311648054,
"lon": -115.118217503977,
"asn": 11953,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Limelight Networks, Inc.",
"lat": 46.0308543255282,
"lon": -96.0747858417544,
"asn": 22822,
"customerConeSize": 152
},
{
"country": "US",
"orgName": "Bloomberg, LP",
"lat": 41.648206700854,
"lon": -72.7111469358935,
"asn": 10361,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Internap Network Services Corporation",
"lat": 49.7554772282924,
"lon": 142.648371552273,
"asn": 12182,
"customerConeSize": 134
},
{
"country": "US",
"orgName": "ALTICOR INC",
"lat": 42.9490682369164,
"lon": -85.4649270661499,
"asn": 11870,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Fibertech Networks, LLC",
"lat": 42.7803956812405,
"lon": -73.7835284884817,
"asn": 16657,
"customerConeSize": 128
},
{
"country": "US",
"orgName": "Albuquerque Public Schools",
"lat": 35.079366483813,
"lon": -106.616127630711,
"asn": 54249,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "US Signal Company, L.L.C.",
"lat": 42.6133634100022,
"lon": -85.6747976337193,
"asn": 26554,
"customerConeSize": 116
},
{
"country": "US",
"orgName": "Clean Harbors Environmental Services, Inc.",
"lat": 42.4076037133858,
"lon": -79.6379421226621,
"asn": 54036,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "California State University Network",
"lat": 35.7230520410887,
"lon": -119.61957569818,
"asn": 2152,
"customerConeSize": 98
},
{
"country": "US",
"orgName": "Document Systems, Inc.",
"lat": 33.8313,
"lon": -118.238,
"asn": 14937,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Internap Network Services Corporation",
"lat": 40.6846751708476,
"lon": -80.702524952694,
"asn": 10913,
"customerConeSize": 97
},
{
"country": "CA",
"orgName": "Questrade Inc.",
"lat": 43.787,
"lon": -79.4169,
"asn": 54167,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Internap Network Services Corporation",
"lat": 37.9840365144789,
"lon": -92.767781223271,
"asn": 12179,
"customerConeSize": 91
},
{
"country": "US",
"orgName": "SECURITY EQUPMENT INC",
"lat": 41.2332,
"lon": -96.1137,
"asn": 53915,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "BRIGHT HOUSE NETWORKS, LLC",
"lat": 29.761530800616,
"lon": -82.9808577479756,
"asn": 33363,
"customerConeSize": 81
},
{
"country": "US",
"orgName": "Cooperative Communications Inc.",
"lat": 40.7239161719254,
"lon": -74.2058915121602,
"asn": 25606,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "ViaWest",
"lat": 40.2552337566303,
"lon": -107.842385889869,
"asn": 13649,
"customerConeSize": 70
},
{
"country": "US",
"orgName": "Telecommunication Systems, Inc.",
"lat": 46.9296616842602,
"lon": -122.333792705656,
"asn": 32312,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Internap Network Services Corporation",
"lat": 42.2695064113361,
"lon": -72.1902862190691,
"asn": 14742,
"customerConeSize": 65
},
{
"country": "US",
"orgName": "St. Cloud Hospital",
"lat": 45.5838,
"lon": -94.2037,
"asn": 17164,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "SINAP-TIX, LLC",
"lat": 37.2316856467182,
"lon": -119.760515301361,
"asn": 22911,
"customerConeSize": 63
},
{
"country": "US",
"orgName": "Deseret Digital Media, Inc.",
"lat": 40.7451616308417,
"lon": -110.826978116378,
"asn": 11319,
"customerConeSize": 1
},
{
"country": "MX",
"orgName": "Operbes, S.A. de C.V.",
"lat": 20.7365075264834,
"lon": -98.7617805629172,
"asn": 18734,
"customerConeSize": 61
},
{
"country": "US",
"orgName": "CenterBeam, Inc.",
"lat": 37.0093515110504,
"lon": -121.432734858771,
"asn": 19272,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "SunGard Availability Services LP",
"lat": 39.1906648804076,
"lon": -88.5783741942146,
"asn": 7381,
"customerConeSize": 61
},
{
"country": "US",
"orgName": "Management & Training Corporation",
"lat": 40.8983002114857,
"lon": -111.884002811415,
"asn": 27480,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "OARnet",
"lat": 40.3651762432617,
"lon": -83.8258633984157,
"asn": 600,
"customerConeSize": 59
},
{
"country": "US",
"orgName": "Adtran, Inc.",
"lat": 34.6520938016802,
"lon": -86.8304424175787,
"asn": 25739,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Internap Network Services Corporation",
"lat": 38.257604936235,
"lon": -92.2195730319062,
"asn": 14745,
"customerConeSize": 56
},
{
"country": "US",
"orgName": "Mountain America Credit Union",
"lat": 40.6109700836423,
"lon": -111.978133407242,
"asn": 17206,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Visionary Communications, Inc.",
"lat": 42.0066532366329,
"lon": -106.468837226947,
"asn": 10835,
"customerConeSize": 55
},
{
"country": "US",
"orgName": "LL Bean",
"lat": 43.8713094400982,
"lon": -70.1112191532047,
"asn": 31869,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "CONTINENTAL BROADBAND PENNSYLVANIA, INC.",
"lat": 39.1791724139581,
"lon": -81.3885893092409,
"asn": 17054,
"customerConeSize": 53
},
{
"country": "US",
"orgName": "Icarz, Inc",
"lat": 40.9289037085681,
"lon": -74.6093486115972,
"asn": 19865,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "LS Networks",
"lat": 44.4091090660238,
"lon": -122.900683344755,
"asn": 25899,
"customerConeSize": 50
},
{
"country": "US",
"orgName": "DALLAS COUNTY SCHOOLS",
"lat": 32.7386818654615,
"lon": -96.8830569663516,
"asn": 19581,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Qwest Communications Company, LLC",
"lat": 60.6539068663358,
"lon": 18.1750697443965,
"asn": 3910,
"customerConeSize": 49
},
{
"country": "DE",
"orgName": "Infineon AG",
"lat": 48.0841033198594,
"lon": 11.6474219127105,
"asn": 25432,
"customerConeSize": 1
},
{
"country": "IN",
"orgName": "BHARTI Airtel Ltd.",
"lat": 24.7151889758232,
"lon": 76.7412331871378,
"asn": 9498,
"customerConeSize": 1395
},
{
"country": "DE",
"orgName": "Miltenyi Biotec GmbH",
"lat": 51.4879,
"lon": 7.36459,
"asn": 57911,
"customerConeSize": 1
},
{
"country": "DE",
"orgName": "ENERCON GmbH",
"lat": 53.4582,
"lon": 7.50987,
"asn": 49651,
"customerConeSize": 1
},
{
"country": "FR",
"orgName": "COLT Technology Services Group Limited",
"lat": 48.3756347514214,
"lon": 4.50513534995336,
"asn": 8220,
"customerConeSize": 697
},
{
"country": "SG",
"orgName": "Leaseweb Asia Pacific pte. ltd.",
"lat": 12.5892443954994,
"lon": 99.3061566638211,
"asn": 59253,
"customerConeSize": 1
},
{
"country": "CZ",
"orgName": "GTS Czech s.r.o.",
"lat": 49.1587674038189,
"lon": 16.6741298167844,
"asn": 5588,
"customerConeSize": 666
},
{
"country": "DE",
"orgName": "TUEVRheinland Service GmbH",
"lat": 50.9373067209082,
"lon": 6.96027707239068,
"asn": 42249,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "Express Teleservice Corp",
"lat": 68.7651994106092,
"lon": -32.634353733987,
"asn": 41625,
"customerConeSize": 1
},
{
"country": "BR",
"orgName": "Telemar Norte Leste S.A.",
"lat": -19.5621989691867,
"lon": -42.9466190761531,
"asn": 7738,
"customerConeSize": 526
},
{
"country": "DE",
"orgName": "Robert Bosch GMBH",
"lat": 48.8045708483699,
"lon": 9.21492509226652,
"asn": 9183,
"customerConeSize": 1
},
{
"country": "CH",
"orgName": "Swisscom (Switzerland) Ltd",
"lat": 47.1456438280292,
"lon": 7.82223254679966,
"asn": 3303,
"customerConeSize": 493
},
{
"country": "DE",
"orgName": "TBits.net GmbH",
"lat": 48.8126557535024,
"lon": 9.78171553427709,
"asn": 51417,
"customerConeSize": 1
},
{
"country": "CN",
"orgName": "China Telecom Next Generation Carrier Network",
"lat": 33.5026445062044,
"lon": 113.443703145554,
"asn": 4809,
"customerConeSize": 386
},
{
"country": "DE",
"orgName": "Giesecke & Devrient GmbH",
"lat": 48.1409,
"lon": 11.5691,
"asn": 20572,
"customerConeSize": 1
},
{
"country": "RO",
"orgName": "ROMTelecom S.A.",
"lat": 45.2164799123491,
"lon": 25.618273138342,
"asn": 9050,
"customerConeSize": 379
},
{
"country": "US",
"orgName": "Retail Data, LLC",
"lat": 37.4524,
"lon": -77.4762,
"asn": 36346,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Level 3 Communications, Inc.",
"lat": 31.7645499253959,
"lon": -73.0654721318316,
"asn": 3549,
"customerConeSize": 6624
},
{
"country": "US",
"orgName": "Harris Government Systems Sector",
"lat": 31.2741124227253,
"lon": -80.4868791182427,
"asn": 243,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Beyond The Network America, Inc.",
"lat": 43.1783445625911,
"lon": -88.1506896906646,
"asn": 3491,
"customerConeSize": 6407
},
{
"country": "US",
"orgName": "Saber Healthcare Group LLC",
"lat": 41.3867,
"lon": -81.5271,
"asn": 13697,
"customerConeSize": 1
},
{
"country": "EU",
"orgName": "Cable and Wireless Worldwide plc",
"lat": 52.4739099023046,
"lon": 10.0987496682816,
"asn": 1273,
"customerConeSize": 5265
},
{
"country": "US",
"orgName": "Adm Investor Services, Inc",
"lat": 41.6882010982164,
"lon": -83.0512336030936,
"asn": 26694,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "Closed Joint Stock Company TransTeleCom",
"lat": 61.0061616144185,
"lon": 46.9425296165071,
"asn": 20485,
"customerConeSize": 3460
},
{
"country": "US",
"orgName": "Consolidated Edison Co. of New York, Inc.",
"lat": 40.7332572362582,
"lon": -73.9896974866164,
"asn": 1932,
"customerConeSize": 1
},
{
"country": "UA",
"orgName": "RETN Limited",
"lat": 56.0413667373668,
"lon": 15.8518277906495,
"asn": 9002,
"customerConeSize": 3321
},
{
"country": "US",
"orgName": "SS&C Technologies, Inc.",
"lat": 41.4249312072012,
"lon": -73.1931095914254,
"asn": 13938,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "tw telecom holdings, inc.",
"lat": 38.1964714259321,
"lon": -96.4411741129958,
"asn": 4323,
"customerConeSize": 2452
},
{
"country": "US",
"orgName": "ANSYS, INC",
"lat": 40.3833,
"lon": -80.0667,
"asn": 53465,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "OJSC \"Vimpelcom\"",
"lat": 55.6092946815363,
"lon": 43.7748128393923,
"asn": 3216,
"customerConeSize": 2127
},
{
"country": "US",
"orgName": "Cybernet Entertainment, LLC",
"lat": 37.7749003121644,
"lon": -122.413249661821,
"asn": 40125,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "MTS OJSC",
"lat": 55.6044360367425,
"lon": 36.8065048037098,
"asn": 8359,
"customerConeSize": 1867
},
{
"country": "US",
"orgName": "P&S Credit Management, L.P.",
"lat": 40.7423,
"lon": -73.9879,
"asn": 62850,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "OJSC MegaFon",
"lat": 53.8491156314835,
"lon": 48.2241258356325,
"asn": 31133,
"customerConeSize": 1707
},
{
"country": "US",
"orgName": "jackson lewis p.c.",
"lat": 40.7996,
"lon": -73.9703,
"asn": 54100,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Trust Company of America",
"lat": 39.5613883026647,
"lon": -104.879892941563,
"asn": 27459,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "CJSC Rascom, St.Petersburg, Russia",
"lat": 58.4899140823133,
"lon": 33.092925117132,
"asn": 20764,
"customerConeSize": 1116
},
{
"country": "KR",
"orgName": "SK Broadband ( formely as Hanaro Telecom Inc.)",
"lat": 37.393985530624,
"lon": 127.088813785596,
"asn": 9318,
"customerConeSize": 1066
},
{
"country": "US",
"orgName": "Robert Morris University",
"lat": 40.5217178208553,
"lon": -80.1417312750326,
"asn": 23102,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "Filanco, ltd.",
"lat": 57.0716150584834,
"lon": 34.5291601547614,
"asn": 29076,
"customerConeSize": 1053
},
{
"country": "US",
"orgName": "APL Limited",
"lat": 34.3268821165074,
"lon": -110.486243291573,
"asn": 40155,
"customerConeSize": 1
},
{
"country": "GB",
"orgName": "Reliance Globalcom Limited",
"lat": 49.4307712242128,
"lon": 15.0533744567532,
"asn": 15412,
"customerConeSize": 1025
},
{
"country": "US",
"orgName": "Yale University",
"lat": 41.3086,
"lon": -72.9258,
"asn": 29,
"customerConeSize": 1
},
{
"country": "AP",
"orgName": "Pacnet Global Ltd",
"lat": 20.5615228888808,
"lon": 122.049691722556,
"asn": 10026,
"customerConeSize": 920
},
{
"country": "US",
"orgName": "Echostar Holding Purchasing Corporation",
"lat": 40.2262224813398,
"lon": -91.0315784152913,
"asn": 16535,
"customerConeSize": 1
},
{
"country": "UA",
"orgName": "PRIVATE JOINT STOCK COMPANY \"DATAGROUP\"",
"lat": 49.9893225027943,
"lon": 31.2530698677209,
"asn": 21219,
"customerConeSize": 885
},
{
"country": "US",
"orgName": "Lafayette College",
"lat": 40.6859,
"lon": -75.2408,
"asn": 22198,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Computer Sciences Corporation",
"lat": 40.0065339465161,
"lon": -77.6505603434983,
"asn": 1810,
"customerConeSize": 1
},
{
"country": "NL",
"orgName": "Atrato Communications, Inc.",
"lat": 53.0596266044609,
"lon": 4.45289022921788,
"asn": 5580,
"customerConeSize": 846
},
{
"country": "US",
"orgName": "Skout, Inc.",
"lat": 37.7215,
"lon": -122.44,
"asn": 393372,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "JSC \"TRC FIORD\"",
"lat": 55.7729642276252,
"lon": 38.2123315789436,
"asn": 28917,
"customerConeSize": 809
},
{
"country": "US",
"orgName": "Discover Financial Services",
"lat": 42.1679389840932,
"lon": -87.8853913303755,
"asn": 12147,
"customerConeSize": 1
},
{
"country": "AT",
"orgName": "Liberty Global Operations B.V.",
"lat": 49.924934639417,
"lon": 13.0182456066815,
"asn": 6830,
"customerConeSize": 745
},
{
"country": "US",
"orgName": "Integral Development Corp.",
"lat": 40.7117844357703,
"lon": -107.050567789265,
"asn": 14610,
"customerConeSize": 1
},
{
"country": "DE",
"orgName": "ICF SYSTEMS AG",
"lat": 50.1179,
"lon": 8.66358,
"asn": 197334,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Geisinger System Services",
"lat": 40.9588762579905,
"lon": -76.6084958865876,
"asn": 29899,
"customerConeSize": 1
},
{
"country": "PT",
"orgName": "PT Comunicacoes S A",
"lat": 16.9814652945727,
"lon": -13.4235332995264,
"asn": 8657,
"customerConeSize": 592
},
{
"country": "US",
"orgName": "Euro RSCG Worldwide, LLC",
"lat": 40.036,
"lon": -75.1194,
"asn": 22961,
"customerConeSize": 1
},
{
"country": "CN",
"orgName": "No.31,Jin-rong Street",
"lat": 32.7748908462658,
"lon": 113.435553728061,
"asn": 4134,
"customerConeSize": 572
},
{
"country": "GB",
"orgName": "Spectrum Interactive Ltd",
"lat": 52.6187267546243,
"lon": -1.34735330450195,
"asn": 199455,
"customerConeSize": 1
},
{
"country": "PL",
"orgName": "ATM S.A.",
"lat": 52.9167221749814,
"lon": 20.2331627770299,
"asn": 24724,
"customerConeSize": 553
},
{
"country": "US",
"orgName": "Roper Saint Francis Healthcare",
"lat": 32.7936269129411,
"lon": -79.8646165155714,
"asn": 63249,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "Moscow Telecommunication Corporation (COMCOR)",
"lat": 55.7248150764112,
"lon": 37.3809849457005,
"asn": 8732,
"customerConeSize": 539
},
{
"country": "US",
"orgName": "Delex Systems Inc",
"lat": 38.9598673016059,
"lon": -77.4675693360467,
"asn": 36858,
"customerConeSize": 1
},
{
"country": "DE",
"orgName": "Vodafone GmbH",
"lat": 50.8249455234752,
"lon": 9.33646535757503,
"asn": 3209,
"customerConeSize": 481
},
{
"country": "US",
"orgName": "VeriSign Global Registry Services",
"lat": 67.7969372929817,
"lon": -80.7515791237253,
"asn": 36616,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Cox Communications Inc.",
"lat": 36.1861024010655,
"lon": -99.5517736387569,
"asn": 22773,
"customerConeSize": 479
},
{
"country": "US",
"orgName": "ClearBlue Technologies",
"lat": 42.4256586794793,
"lon": -71.5139653654267,
"asn": 5067,
"customerConeSize": 1
},
{
"country": "NL",
"orgName": "LeaseWeb B.V.",
"lat": 51.5093307753407,
"lon": 6.52507656363089,
"asn": 16265,
"customerConeSize": 444
},
{
"country": "US",
"orgName": "iostudio, LLC",
"lat": 36.0752,
"lon": -86.7207,
"asn": 55137,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Cablevision Systems Corp.",
"lat": 40.842404389006,
"lon": -73.7660842344403,
"asn": 6128,
"customerConeSize": 434
},
{
"country": "FR",
"orgName": "Xplorium France SARL",
"lat": 48.8602,
"lon": 2.34107,
"asn": 43439,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "WARNER BROS ENTERTAINMENT INC",
"lat": 40.2601737269191,
"lon": -97.9112189057976,
"asn": 36032,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Grange Mutual Casualty Co.",
"lat": 40.0042823405585,
"lon": -82.9336518708465,
"asn": 32182,
"customerConeSize": 1
},
{
"country": "EU",
"orgName": "DANTE Ltd",
"lat": 52.27674701662,
"lon": -1.11011616191653,
"asn": 20965,
"customerConeSize": 372
},
{
"country": "US",
"orgName": "Burton Snowboards",
"lat": 44.5481593808202,
"lon": -73.2154284091729,
"asn": 62944,
"customerConeSize": 1
},
{
"country": "TR",
"orgName": "Turk Telekomunikasyon Anonim Sirketi",
"lat": 39.8177411808069,
"lon": 31.1451016455289,
"asn": 9121,
"customerConeSize": 342
},
{
"country": "CA",
"orgName": "Postmedia Network Inc",
"lat": 50.0977877935426,
"lon": -99.6648330699113,
"asn": 18588,
"customerConeSize": 1
},
{
"country": "UA",
"orgName": "\"TOP NET\" PJSC",
"lat": 50.2067325221745,
"lon": 31.1965912145401,
"asn": 21011,
"customerConeSize": 337
},
{
"country": "US",
"orgName": "Briefing.com",
"lat": 41.8942,
"lon": -87.6228,
"asn": 36419,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Lightower Fiber Networks",
"lat": 41.2409947760384,
"lon": -73.8964123471592,
"asn": 46887,
"customerConeSize": 327
},
{
"country": "DE",
"orgName": "OMCnet Internet Service GmbH",
"lat": 53.5846264274328,
"lon": 9.89859619380443,
"asn": 15388,
"customerConeSize": 1
},
{
"country": "BR",
"orgName": "EMPRESA BRASILEIRA DE TELECOMUNICAÇÕES SA-EMBRATEL",
"lat": -20.7833729119179,
"lon": -44.3479833147935,
"asn": 4230,
"customerConeSize": 327
},
{
"country": "US",
"orgName": "Congressional Budget Office",
"lat": 38.8905611383339,
"lon": -77.0238005695047,
"asn": 2274,
"customerConeSize": 1
},
{
"country": "MY",
"orgName": "TM Net, Internet Service Provider",
"lat": 3.6668097438173,
"lon": 102.66943397315,
"asn": 4788,
"customerConeSize": 321
},
{
"country": "US",
"orgName": "Carpathia Hosting, Inc.",
"lat": 39.0191,
"lon": -77.461,
"asn": 46742,
"customerConeSize": 1
},
{
"country": "OM",
"orgName": "General Telecommunication Organization",
"lat": 55.3272184911135,
"lon": 18.2720195335203,
"asn": 8529,
"customerConeSize": 319
},
{
"country": "US",
"orgName": "BUDCO",
"lat": 40.4297,
"lon": -74.4073,
"asn": 14208,
"customerConeSize": 1
},
{
"country": "DE",
"orgName": "Core-Backbone GmbH",
"lat": 50.5287429781277,
"lon": 8.72304955102247,
"asn": 33891,
"customerConeSize": 313
},
{
"country": "US",
"orgName": "ALEXION PHARMACEUTICALS INC.",
"lat": 41.5042,
"lon": -72.9064,
"asn": 55029,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "State Institute of Information Technologies and Telecommunications (SIIT&T \"Informika\")",
"lat": 59.5503816371673,
"lon": 38.0593218174149,
"asn": 3267,
"customerConeSize": 312
},
{
"country": "US",
"orgName": "Troy Corporation",
"lat": 40.7686,
"lon": -74.1686,
"asn": 10919,
"customerConeSize": 1
},
{
"country": "NL",
"orgName": "British Telecommunications plc",
"lat": 54.1471670022869,
"lon": 5.3930032379197,
"asn": 5400,
"customerConeSize": 308
},
{
"country": "US",
"orgName": "AMA",
"lat": 37.7706,
"lon": -122.441,
"asn": 31968,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "CarRentals LLC",
"lat": 41.7775,
"lon": -87.7093,
"asn": 54018,
"customerConeSize": 1
},
{
"country": "PL",
"orgName": "Exatel S.A.",
"lat": 51.9788153832304,
"lon": 20.116585814002,
"asn": 20804,
"customerConeSize": 283
},
{
"country": "US",
"orgName": "Centric Group, LLC",
"lat": 38.6718,
"lon": -90.3775,
"asn": 11651,
"customerConeSize": 1
},
{
"country": "RO",
"orgName": "Euroweb Romania S.A.",
"lat": 46.3623963102548,
"lon": 22.7232102950335,
"asn": 6663,
"customerConeSize": 282
},
{
"country": "US",
"orgName": "CARNIVAL CRUISE LINES",
"lat": 25.8997414334606,
"lon": -80.4146404936005,
"asn": 19727,
"customerConeSize": 1
},
{
"country": "IT",
"orgName": "Fastweb SpA",
"lat": 44.0728561781828,
"lon": 10.8816959967559,
"asn": 12874,
"customerConeSize": 281
},
{
"country": "US",
"orgName": "Reynwood Communications, Inc.",
"lat": 40.3469006329436,
"lon": -74.1016785798779,
"asn": 30586,
"customerConeSize": 1
},
{
"country": "TW",
"orgName": "Taiwan Internet Gateway",
"lat": 34.5947367694352,
"lon": 133.308458588469,
"asn": 9505,
"customerConeSize": 269
},
{
"country": "GB",
"orgName": "Wavecrest (UK) Ltd",
"lat": 51.4162,
"lon": 0.07036,
"asn": 34407,
"customerConeSize": 1
},
{
"country": "EU",
"orgName": "TDC A/S",
"lat": 56.8320418040552,
"lon": 11.9406050812116,
"asn": 3292,
"customerConeSize": 260
},
{
"country": "US",
"orgName": "TREND MICRO INCORPORATED",
"lat": 42.6666980745574,
"lon": -120.18946434767,
"asn": 36421,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "PRIVATE JOINT-STOCK COMPANY \"FARLEP-INVEST\"",
"lat": 48.3858079458982,
"lon": 31.5386849630931,
"asn": 12883,
"customerConeSize": 253
},
{
"country": "US",
"orgName": "Bright Pattern, Inc",
"lat": 37.625,
"lon": -122.432,
"asn": 33411,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Columbus Networks USA, Inc.",
"lat": 13.7490261249184,
"lon": -75.0494098990051,
"asn": 23520,
"customerConeSize": 249
},
{
"country": "US",
"orgName": "Tudor Investment Corporation",
"lat": 45.674379433413,
"lon": -64.6523476581671,
"asn": 53276,
"customerConeSize": 1
},
{
"country": "AZ",
"orgName": "Delta Telecom LTD.",
"lat": 40.5788377917822,
"lon": 49.7393477341817,
"asn": 29049,
"customerConeSize": 247
},
{
"country": "US",
"orgName": "MM Internet, Inc.",
"lat": 33.9952692694791,
"lon": -118.100219390548,
"asn": 12028,
"customerConeSize": 1
},
{
"country": "ZA",
"orgName": "MWEB CONNECT (PROPRIETARY) LIMITED",
"lat": -32.2298240128671,
"lon": 21.2100410639229,
"asn": 10474,
"customerConeSize": 244
},
{
"country": "IL",
"orgName": "Xglobe Online LTD",
"lat": 49.8051304126065,
"lon": -40.6577908082762,
"asn": 199391,
"customerConeSize": 1
},
{
"country": "IN",
"orgName": "C48 Okhla Industrial Estate, New Delhi-110020",
"lat": 35.6160407286671,
"lon": 72.970494168606,
"asn": 55410,
"customerConeSize": 223
},
{
"country": "US",
"orgName": "OnyxLight Communications, Inc.",
"lat": 28.5342403652854,
"lon": -81.3641220828253,
"asn": 32015,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Integra Telecom, Inc.",
"lat": 42.3795612955897,
"lon": -113.147189427485,
"asn": 7385,
"customerConeSize": 223
},
{
"country": "GB",
"orgName": "Novosco Limited",
"lat": 54.5187752343562,
"lon": -5.86191627123963,
"asn": 8789,
"customerConeSize": 1
},
{
"country": "TH",
"orgName": "The Communications Authority of Thailand(CAT)",
"lat": 31.3453941854097,
"lon": 119.125415308783,
"asn": 4651,
"customerConeSize": 220
},
{
"country": "DE",
"orgName": "Hamburg Suedamerikanische Dampfschifffahrts-Gesellschaft KG",
"lat": 71.3366211285482,
"lon": -39.6347605422367,
"asn": 41707,
"customerConeSize": 1
},
{
"country": "NL",
"orgName": "Open Peering BV trading as Joint Transit",
"lat": 52.1296768361586,
"lon": 4.49398488152718,
"asn": 24785,
"customerConeSize": 218
},
{
"country": "US",
"orgName": "Corinthian College",
"lat": 33.6968,
"lon": -117.87,
"asn": 32012,
"customerConeSize": 1
},
{
"country": "CA",
"orgName": "Allstream Corp.",
"lat": 48.733351230047,
"lon": -91.2928987754023,
"asn": 15290,
"customerConeSize": 214
},
{
"country": "US",
"orgName": "Staples, Inc",
"lat": 39.8943275544476,
"lon": -105.070315809799,
"asn": 13954,
"customerConeSize": 1
},
{
"country": "BG",
"orgName": "Bulgarian Telecommunication Company Plc.",
"lat": 42.747575321837,
"lon": 24.8774015753977,
"asn": 8866,
"customerConeSize": 207
},
{
"country": "US",
"orgName": "Yelp! Inc.",
"lat": 39.3674458923902,
"lon": -116.239435229538,
"asn": 33445,
"customerConeSize": 1
},
{
"country": "ID",
"orgName": "PT Telekomunikasi Indonesia",
"lat": 2.47718936929697,
"lon": 105.153422429982,
"asn": 7713,
"customerConeSize": 200
},
{
"country": "US",
"orgName": "Blue Coat Systems, Inc",
"lat": 58.4305456272267,
"lon": -113.03298197582,
"asn": 27471,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "WV FIBER",
"lat": 28.9046862391614,
"lon": -80.1449004311743,
"asn": 19151,
"customerConeSize": 198
},
{
"country": "US",
"orgName": "LVMH MOET HENNESSY LOUIS VUITTON",
"lat": 40.7537608559769,
"lon": -73.9759425362435,
"asn": 62928,
"customerConeSize": 1
},
{
"country": "SE",
"orgName": "IP-Only Networks AB",
"lat": 59.0413454941539,
"lon": 16.2592753895115,
"asn": 12552,
"customerConeSize": 193
},
{
"country": "US",
"orgName": "Sourcefire, Inc.",
"lat": 39.2210161631783,
"lon": -76.8801644113032,
"asn": 40590,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "JSC GLOBALNET",
"lat": 59.5827710252492,
"lon": 23.2069585545864,
"asn": 31500,
"customerConeSize": 192
},
{
"country": "GB",
"orgName": "Callagenix Limited",
"lat": 51.5147,
"lon": -0.08329,
"asn": 44824,
"customerConeSize": 1
},
{
"country": "LV",
"orgName": "LATTELEKOM-APOLLO",
"lat": 56.9029720528298,
"lon": 24.1550610943596,
"asn": 12578,
"customerConeSize": 191
},
{
"country": "US",
"orgName": "Crexendo Business Solutions, Inc.",
"lat": 35.864619858971,
"lon": -111.912703384035,
"asn": 54845,
"customerConeSize": 1
},
{
"country": "SG",
"orgName": "StarHub Internet Exchange",
"lat": 2.80446289666385,
"lon": 104.258841590175,
"asn": 4657,
"customerConeSize": 190
},
{
"country": "US",
"orgName": "INSIDE CONNECT CABLE LLC",
"lat": 40.0361163886984,
"lon": -86.1450080663842,
"asn": 31888,
"customerConeSize": 1
},
{
"country": "EU",
"orgName": "next layer Telekommunikationsdienstleistungs- GmbH",
"lat": 48.2031667780361,
"lon": 16.2212005381565,
"asn": 1764,
"customerConeSize": 188
},
{
"country": "US",
"orgName": "Gannett Supply Corp. - Portland, ME",
"lat": 39.065,
"lon": -76.9815,
"asn": 16429,
"customerConeSize": 1
},
{
"country": "ZA",
"orgName": "Internet Solutions",
"lat": -27.8778084646461,
"lon": 26.3229700135355,
"asn": 3741,
"customerConeSize": 181
},
{
"country": "US",
"orgName": "Oracle Corporation",
"lat": 52.1325563464185,
"lon": -2.57587499759803,
"asn": 4184,
"customerConeSize": 1
},
{
"country": "DE",
"orgName": "Versatel Deutschland GmbH",
"lat": 51.6725378543049,
"lon": 9.12623386069991,
"asn": 8881,
"customerConeSize": 180
},
{
"country": "DZ",
"orgName": "SPA Anwarnet",
"lat": 36.6225511277006,
"lon": 3.10679410166786,
"asn": 36989,
"customerConeSize": 1
},
{
"country": "CA",
"orgName": "Rogers Cable Communications Inc.",
"lat": 44.2156583779553,
"lon": -78.6064022475691,
"asn": 812,
"customerConeSize": 172
},
{
"country": "PH",
"orgName": "PLDT Subic Telecom, Inc.",
"lat": 14.1689840539158,
"lon": 121.152176179327,
"asn": 18114,
"customerConeSize": 1
},
{
"country": "ML",
"orgName": "Orange Mali SA",
"lat": 12.6653867668676,
"lon": -8.07041934524678,
"asn": 30985,
"customerConeSize": 3
},
{
"country": "US",
"orgName": "Treasury Wine Estates Americas",
"lat": 38.0134,
"lon": -122.549,
"asn": 18955,
"customerConeSize": 1
},
{
"country": "RU",
"orgName": "OJSC Rostelecom",
"lat": 59.3179934893717,
"lon": 69.8135152946662,
"asn": 12389,
"customerConeSize": 2272
},
{
"country": "MZ",
"orgName": "Movitel, SA",
"lat": -25.9050371006183,
"lon": 32.596387165351,
"asn": 37342,
"customerConeSize": 1
},
{
"country": "SG",
"orgName": "Hogarth Worldwide Pte",
"lat": 1.30612,
"lon": 103.833,
"asn": 132242,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Comcast Cable Communications, Inc.",
"lat": 40.0536125351444,
"lon": -89.4620007951886,
"asn": 7922,
"customerConeSize": 1655
},
{
"country": "FR",
"orgName": "VIAPASS SAS",
"lat": 43.5509,
"lon": 7.01059,
"asn": 39206,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Mckinsey & Company",
"lat": 41.2234593014366,
"lon": -76.9174277110704,
"asn": 23047,
"customerConeSize": 1
},
{
"country": "HK",
"orgName": "Telstra Global",
"lat": 17.1639522619363,
"lon": 114.548461626046,
"asn": 4637,
"customerConeSize": 847
},
{
"country": "US",
"orgName": "Instart Logic, Inc",
"lat": 55.2902968769127,
"lon": -127.300910707875,
"asn": 33047,
"customerConeSize": 1
},
{
"country": "US",
"orgName": "Time Warner Cable Internet LLC",
"lat": 38.3358813065996,
"lon": -84.700316845212,
"asn": 7843,
"customerConeSize": 779
},
{
"country": "US",
"orgName": "Legrand North America, Inc.",
"lat": 41.938966353057,
"lon": -73.7202905456383,
"asn": 26252,
"customerConeSize": 1
},
{
"country": "HK",
"orgName": "Hutchison Global Communications",
"lat": 22.3104302352484,
"lon": 114.1891843176,
"asn": 9304,
"customerConeSize": 597
},
{
"country": "CA",
"orgName": "Utherverse Digital Inc.",
"lat": 49.2804,
"lon": -123.115,
"asn": 33169,
"customerConeSize": 1
},
{
"country": "IN",