PageSourceSearch

https://ipv6-test.com/pingtest/

html ipv6-test.com collected 2026-09-27 20:53:53 UTC 18,945 bytes, 657 lines download raw bytes

1<!DOCTYPE html>
2<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
3<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
4<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
5<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
6    <head>
7		
7<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2036403888955939"
8     crossorigin="anonymous"></script>
8
9		<meta charset="utf-8" />
10		<title>IPv6 test - IPv6 vs. IPv4 latency test</title>
11		<meta name="description" content="On this page you can test the ping latency of your internet connection, and compare the performance of your IPv4 and IPv6 connectivity." />
12		<meta name="viewport" content="width=device-width" />
13		<link rel="stylesheet" href="/css/bootstrap.min.css" />
14        <style>
15            body {
16                padding-top: 50px;
17                padding-bottom: 20px;
18            }
19        </style>
20        <link rel="stylesheet" href="/css/bootstrap-theme.min.css" />
21		<link rel="stylesheet" href="/css/main.css" />
22        
22<script src="/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>
22
23		
23<script type="text/javascript">
24
25		  var _gaq = _gaq || [];
26		  _gaq.push(['_setAccount', 'UA-15976696-1']);
27		  _gaq.push(['_setDomainName', 'ipv6-test.com']);
28		  _gaq.push(['_trackPageview']);
29
30		  (function() {
31			var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
32			ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
33			var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
34		  })();
35
36		</script>
36
37	</head>
38	<body>
39        <!--[if lt IE 7]>
40            <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
41        <![endif]-->
42    <div class="navbar navbar-default navbar-fixed-top">
43      <div class="container">
44        <div class="navbar-header">
45          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
46            <span class="icon-bar"></span>
47            <span class="icon-bar"></span>
48            <span class="icon-bar"></span>
49          </button>
50          <a class="navbar-brand" style="position:relative;top:-13px" href="//ipv6-test.com"><img src="/img/logo.png" alt="logo" /></a>
51        </div>
52        <div class="navbar-collapse collapse">
53          <ul class="nav navbar-nav">
54<li class='internal'><a href='//ipv6-test.com/' title='General'>General</a></li><li class='internal'><a href='//ipv6-test.com/speedtest/' title='Speed'>Speed</a></li><li class='active internal'><a href='//ipv6-test.com/pingtest/' title='Ping'>Ping</a></li><li class='internal'><a href='//ipv6-test.com/validate.php' title='Website'>Website</a></li><li class='internal'><a href='//ipv6-test.com/stats/' title='Stats'>Stats</a></li><li class='internal'><a href='//ipv6-test.com/api/' title='API'>API</a></li>		  </ul>
55		</div><!--/.navbar-collapse -->
56      </div>
57    </div>
58
59<div id='error_box' style='display:none'>
60</div>
61
62<script>
63function show_error(s) {
64	$("#error_box").html("<span style='font-weight:bold;'>ERROR</span><br />" + s).slideDown().click(function() {});
65}
66
67function show_warning(s) {
68	$("#error_box").html("<span style='font-weight:bold;'>WARNING</span><br />" + s).slideDown().click(function() { $(this).fadeOut(); });
69}
70</script>
70
71
72<div class='container'>
73	<br />
74<noscript>
75<div class='addr_box'>
76<div class='addr_small'>Your are using <span class='v4'>IPv4</span> to browse this site.</div><div class='addr_body'>104.234.32.2</div><div class='addr_small'>104.234.32.2</div></div><h3>No Javascript :(</h3>
77<p>
78Your browser does not appear to have <i>Javascript</i> support enabled. Without it IPv6-test.com cannot test the latency of your internet connection.
79</p>
80</noscript>
81<div id='hide_noscript' style='display:none'>
82	<div id='speedtest_loading'>
83		<h4>finding the best test server for your location</h4>
84		<div class="progress progress-striped active">
85		  <div class="progress-bar"  role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width:100%"></div>
86		</div>
87	</div>
88	<div id='speedtest_ready' style='display:none'>
89		<h4>Please select a test server</h4>
90		<div class="row">
91			<div id='speedtest_servers_container' class="col-lg-4 col-md-4 col-sm-5">
92				<div id='speedtest_servers'>
93					<div class="form-group">
94						<div class="clearfix"></div>
95						<div class="btn-group">
96						  <button id="server_select" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
97							<span id="server_name"></span> <span class="caret"></span>
98						  </button>
99						  <ul id='servers_list' class="dropdown-menu" role="menu">
100						  </ul>
101						</div>
102					</div>
103				</div>
104				<p style="font-size:0.6em">
105				Do you want to help us by running a test server in your area ?<br />If you think you can, please <a href='/contact.php'>contact us</a> !
106				</p>
107			</div>
108			<div id='speedtest_server_info' class="col-lg-8 col-md-8 col-sm-7">
109			</div>
110		</div>
111	</div>
112
113	<h3>IPv4 Ping</h3>
114	<div id='box_pingtest_v4' class='row box_pingtest' style='display:none'>
115		<div id='graph_v4' class='ping_graph col-lg-9 col-md-8 col-sm-7'>
116		</div>
117		<div id='stats_v4' class='col-lg-3 col-md-4 col-sm-5'>
118			<h6>IPv4 address</h6>
119			<span id='value_addr_v4' class='h4'>-</span>
120			<h6>Ping latency <a href='//en.wikipedia.org/wiki/Round-trip_delay_time' target='_blank'><span class="glyphicon glyphicon-question-sign"></span></a></h6>
121			<span id='value_rtt_v4' class='h4'>-</span>
122			<h6>Time to live <a href='//en.wikipedia.org/wiki/Time_to_live' target='_blank'><span class="glyphicon glyphicon-question-sign"></span></a></h6>
123			<span id='value_ttl_v4' class='h4'>-</span>
124			<h6>Average packet loss</h6>
125			<span id='value_loss_v4' class='h4'>-</span>
126		</div>
127	</div>
128
129	<h3>IPv6 Ping</h3>
130	<div id='box_pingtest_v6' class='row box_pingtest' style='display:none'>
131		<div id='graph_v6' class='ping_graph col-lg-9 col-md-8 col-sm-7'>
132		</div>
133		<div id='stats_v6' class='col-lg-3 col-md-4 col-sm-5'>
134			<h6>IPv6 address</h6>
135			<span id='value_addr_v6' class='h5'>-</span>
136			<h6>Ping latency <a href='//en.wikipedia.org/wiki/Round-trip_delay_time' target='_blank'><span class="glyphicon glyphicon-question-sign"></span></a></h6>
137			<span id='value_rtt_v6' class='h4'>-</span>
138			<h6>Hop limit</h6>
139			<span id='value_ttl_v6' class='h4'>-</span>
140			<h6>Average packet loss</h6>
141			<span id='value_loss_v6' class='h4'>-</span>
142		</div>
143	</div>
144</div>
145
146<script src="https://cdn.db-ip.com/js/dbip.js"
147	data-api-key="p03638dffec62e889fee4b3c0b2b9239fd457731">
148</script>
148
149
150<script>
151
152var servers;
153var server_id;
154var server_display_name;
155var server_location;
156var server_country;
157var server_country_code;
158var server_host_name;
159var server_host_url;
160var server_json_speedtest_v4;
161var server_json_speedtest_v6;
162var server_distance;
163var servers_https_only;
164
165var ldata_v4 = [];
166var ldata_v6 = [];
167var edata_v4 = [];
168var edata_v6 = [];
169
170var edata_v4_100 = [];
171var edata_v6_100 = [];
172
173var pending = 0;
174var pending_v4 = false;
175var pending_v6 = false;
176
177var v4data;
178var v6data;
179
180function get_server(id) {
181	for (i in servers) {
182		if (servers[i].id == id) {
183			return servers[i];
184		}
185	}
186	show_error("test server not found");
187}
188
189function fill_servers_combo() {
190	var i;
191	var s = "";
192	for (i in servers) {
193		s += "<li><a href='#' data-server='" + servers[i].id + "'><img src='/img/flags/" + servers[i].country_code + ".png' style='height:1em;position:relative;left:-0.75em' />" + servers[i].display_name + "</a></li>";
194		if (servers[i].nearest) {
195			set_server_id(servers[i].id);
196		}
197	}
198	if (servers_https_only) {
199		s += "<li class='divider'></li>";
200		s += "<li><a href='http://ipv6-test.com/pingtest/'>Switch to HTTP for more locations</a></li>";
201	}
202	$("#servers_list").html(s);
203	$("#servers_list a").click(function(ev) {
204		set_server_id($(this).attr("data-server"));
205		update_server_info();
206		ev.preventDefault();
207	});
208}
209
210function update_server_info() {
211	var s = "";
212	if (server_display_comment) {
213		s += "<div class='server_display_comment'>" + server_display_comment + "</div>";
214	}
215	s += "<img src='/img/flags/" + server_country_code + ".png' />&nbsp;" + server_location + ", <a href='" + server_host_url + "' target='_blank'>" + server_host_name + "</a>" + " <span class='distance'>(~ <span class='distance_value'>" + server_distance + "</span> km)</span><br /><br />";
216	$("#speedtest_server_info").html(s);
217}
218
219function set_server_id(id) {
220	var srv = get_server(id);
221	server_id = srv.id;
222	server_display_name = srv.display_name;
223	server_display_comment = srv.display_comment;
224	server_country = srv.country_name;
225	server_country_code = srv.country_code;
226	server_location = srv.location;
227	server_host_name = srv.hosting_name;
228	server_host_url = srv.hosting_url;
229	server_json_pingtest_v4 = srv.url_json_pingtest_v4;
230	server_json_pingtest_v6 = srv.url_json_pingtest_v6;
231	server_distance = srv.distance;
232	$("#server_select").attr("data-server", srv.id);
233	$("#server_name").text(srv.display_name);
234}
235
236function test_init() {
237	st_state = 0;
238	$("#speedtest_loading").show();
239	dbip.getVisitor().then(function(visitor) {
240		$.ajax({
241			url: "//ipv6-test.com/json/servers.php?ping&PHPSESSID=iu9nhpid5fo2hf4i0e1vvopdj1&loc=" + visitor.latitude + "," + visitor.longitude,
242			dataType: "jsonp",
243			timeout: 60000,
244			success: function(resp) {
245				$("#speedtest_loading").hide();
246				if (resp.error)	{
247					show_error(resp.error);
248					return;
249				}
250				if (!resp.servers) {
251					show_error("sorry, no available test server at the moment");
252					return;
253				}
254				servers = resp.servers;
255				servers_https_only = resp.https_only;
256				fill_servers_combo();
257				update_server_info();
258				start_pingtest();
259				$("#speedtest_ready").fadeIn();
260			},
261			error: function(xopt, err) {
262				$("#speedtest_loading").hide();
263				show_error("cannot initialize speed test: " + err);
264			},
265		});
266	});
267}
268
269var series_v4_rtt,
270	series_v4_loss,
271	series_v6_rtt,
272	series_v6_loss;
273
274function graph_add_values(proto, rtt, loss) {
275	var x = (new Date()).getTime();
276	var maxPoints = 180;
277	if (proto == "v4") {
278		if (typeof series_v4_rtt === "undefined") {
279			return;
280		}
281		series_v4_rtt.addPoint({
282			name: server_display_name,
283			x: x,
284			y: rtt,
285		}, false, series_v4_rtt.data.length > maxPoints);
286		series_v4_loss.addPoint([x, loss], true, series_v4_loss.data.length > maxPoints);
287	} else {
288		if (typeof series_v6_rtt === "undefined") {
289			return;
290		}
291		series_v6_rtt.addPoint({
292			name: server_display_name,
293			x: x,
294			y: rtt,
295		}, false, series_v6_rtt.data.length > maxPoints);
296		series_v6_loss.addPoint([x, loss], true, series_v6_loss.data.length > maxPoints);
297	}
298}
299
300function init_graphs() {
301	Highcharts.setOptions({
302		global: {
303			useUTC: false
304		}
305	});
306	$('#graph_v4').highcharts({
307		chart: {
308			type: 'area',
309			backgroundColor: "#f0f0f0",
310			animation: Highcharts.svg,
311			alignTicks: false,
312			events: {
313				load: function() {
314					series_v4_rtt = this.series[0];
315					series_v4_loss = this.series[1];
316				},
317			},
318		},
319		plotOptions: {
320			area: {
321				marker: {
322					enabled: false,
323					symbol: 'circle',
324					radius: 2,
325					states: {
326						hover: {
327							enabled: true,
328						},
329					},
330				},
331			},
332		},
333		title: null,
334		xAxis: {
335			type: 'datetime',
336			tickPixelInterval: 150,
337		},
338		yAxis: [{
339			title: {
340				text: "RTT in milliseconds",
341			},
342			min: 0,
343		}, {
344			title: {
345				text: "Packet loss pct.",
346			},
347			min: 0,
348			max: 100,
349			gridLineWidth: 0,
350			opposite: true,
351		}],
352		tooltip: {
353			shared: true,
354		},
355		legend: {
356			enabled: false,
357		},
358		credits: {
359			enabled: false,
360		},
361		exporting: {
362			enabled: false,
363		},
364		series: [{
365			name: "RTT",
366			data: [],
367			tooltip: {
368				valueSuffix: "ms",
369			},
370			unit: "ms",
371		}, {
372			name: "Loss",
373			data: [],
374			color: '#f08080',
375			yAxis: 1,
376			tooltip: {
377				valueSuffix: "%",
378			},
379			unix: "%",
380		}],
381	});
382	$("#graph_v6").highcharts({
383		chart: {
384			type: 'area',
385			backgroundColor: "#f0f0f0",
386			animation: Highcharts.svg,
387			alignTicks: false,
388			events: {
389				load: function() {
390					series_v6_rtt = this.series[0];
391					series_v6_loss = this.series[1];
392				},
393			},
394		},
395		plotOptions: {
396			area: {
397				marker: {
398					enabled: false,
399					symbol: 'circle',
400					radius: 2,
401					states: {
402						hover: {
403							enabled: true,
404						},
405					},
406				},
407			},
408		},
409		title: null,
410		xAxis: {
411			type: 'datetime',
412			tickPixelInterval: 150,
413		},
414		yAxis: [{
415			title: {
416				text: "RTT in milliseconds",
417			},
418			min: 0,
419		}, {
420			title: {
421				text: "Packet loss pct.",
422			},
423			min: 0,
424			max: 100,
425			gridLineWidth: 0,
426			opposite: true,
427		}],
428		tooltip: {
429			shared: true,
430		},
431		legend: {
432			enabled: false,
433		},
434		credits: {
435			enabled: false,
436		},
437		exporting: {
438			enabled: false,
439		},
440		series: [{
441			name: "RTT",
442			data: [],
443			tooltip: {
444				valueSuffix: "ms",
445			},
446			unit: "ms",
447		}, {
448			name: "Loss",
449			data: [],
450			color: '#f08080',
451			yAxis: 1,
452			tooltip: {
453				valueSuffix: "%",
454			},
455			unix: "%",
456		}],
457	});
458}
459
460function update_ui(tid) {
461
462	var gid;
463	var ldata;
464	var edata;
465	var idata;
466
467	switch (tid) {
468
469		case 0:
470		gid = "v4";
471		ldata = ldata_v4;
472		edata = edata_v4;
473		idata = v4data;
474		break;
475
476		case 1:
477		gid = "v6";
478		ldata = ldata_v6;
479		edata = edata_v6;
480		idata = v6data;
481		break;
482
483	}
484
485	var clr;
486	$("#value_addr_" + gid).html(idata.addr);
487
488	if (idata.rtt != null) {
489		if (idata.rtt > 500) {
490			clr = "#700";
491		} else if (idata.rtt > 100) {
492			clr = "#770";
493		} else {
494			clr = "#070";
495		}
496		$("#value_rtt_" + gid).html(idata.rtt + " ms").css("color", clr);
497	} else {
498		$("#value_rtt_" + gid).html("<span class='unreach'>" + idata.status + "</span>");
499	}
500
501	$("#value_ttl_" + gid).html(idata.ttl);
502
503	if (idata.err > 10) {
504		clr = "#700";
505	} else if (idata.err > 0) {
506		clr = "#770";
507	} else {
508		clr = "#070";
509	}
510	$("#value_loss_" + gid).html(idata.err.toPrecision(3) + " %").css("color", clr);
511
512}
513
514function edata_avg(tid) {
515
516	var tmp = tid == 0 ? edata_v4_100 : edata_v6_100;
517	var tot = 0;
518
519	if (!tmp.length) return 0;
520	for (var i in tmp) tot += tmp[i];
521	return (tot / tmp.length) * 100;
522
523}
524
525function handle_result(tid, resp) {
526
527	pending--;
528
529	var tmp = new Date();
530	var time = tmp.getTime() - (tmp.getTimezoneOffset() * 1000 * 60);
531	var pdata;
532	var idata;
533	var err = edata_avg(tid);
534	var edata = 0;
535
536	if (resp == false) {
537		pdata = [time, null];
538		idata = { addr: "<span class='unreach'>n/a</span>", rtt: null, ttl: "<span class='unreach'>n/a</span>", err: err, status: "n/a" };
539		edata = 1;
540	} else {
541		pdata = [time, resp.rtt];
542		idata = { addr: resp.addr, rtt: resp.rtt, ttl: resp.ttl, err: err, status: resp.status };
543		if (resp.status != "ok") {
544			edata = 1;
545		}
546	}
547
548	switch (tid) {
549
550		case 0:
551		pending_v4 = false;
552		v4data = idata;
553		edata_v4_100.push(edata);
554		if (edata_v4_100.length > 100) edata_v4_100.shift();
555		ldata_v4.push(pdata);
556		err = edata_avg(tid);
557		edata_v4.push([time, err]);
558		v4data.err = err;
559		graph_add_values("v4", !!resp.rtt ? parseFloat(resp.rtt) : null, err);
560		break;
561
562		case 1:
563		pending_v6 = false;
564		v6data = idata;
565		edata_v6_100.push(edata);
566		if (edata_v6_100.length > 100) edata_v6_100.shift();
567		ldata_v6.push(pdata);
568		err = edata_avg(tid);
569		edata_v6.push([time, err]);
570		v6data.err = err;
571		graph_add_values("v6", !!resp.rtt ? parseFloat(resp.rtt) : null, err);
572		break;
573
574	}
575
576	update_ui(tid);
577
578}
579
580function run_pingtest() {
581	if ((pending > 1) || (!server_id)) return;
582	if (!pending_v4) {
583		$.ajax({
584			url: server_json_pingtest_v4 + "?PHPSESSID=iu9nhpid5fo2hf4i0e1vvopdj1&callback=?",
585			dataType: "jsonp",
586			timeout: 5000,
587			success: function(resp) { handle_result(0, resp); },
588			error: function(xopt, err) { handle_result(0, false); }
589		});
590		pending++;
591		pending_v4 = true;
592	}
593	if (!pending_v6) {
594		$.ajax({
595			url: server_json_pingtest_v6 + "?PHPSESSID=iu9nhpid5fo2hf4i0e1vvopdj1&callback=?",
596			dataType: "jsonp",
597			timeout: 5000,
598			success: function(resp) { handle_result(1, resp); },
599			error: function(xopt, err) { handle_result(1, false); }
600		});
601		pending++;
602		pending_v6 = true;
603	}
604	if (ldata_v4.length > 250) ldata_v4.shift();
605	if (ldata_v6.length > 250) ldata_v6.shift();
606	if (edata_v4.length > 250) edata_v4.shift();
607	if (edata_v6.length > 250) edata_v6.shift();
608}
609
610function start_pingtest() {
611	$("#box_pingtest_v4, #box_pingtest_v6").fadeIn();
612	init_graphs();
613	setInterval(run_pingtest, 1000);
614}
615
616function i6tOnLoad() {
617	$("#hide_noscript").css("display", "");
618	test_init();
619}
620
621</script>
621
622
623		</div>
624
625		<div class="container" style="margin-top:6em">
626			<footer id='footer_text' class="small">
627									Copyright &copy; 2026 ipv6-test.com &nbsp;|&nbsp; <a href='bitcoin:1Ln1WDAuDfGxV4SLSsyLXrZf2Hs65haybk'>donate</a> &nbsp;|&nbsp; <a href='/contact.php'>contact</a><br />
628								<span class='small'><a href='https://db-ip.com/api/?refid=i6t'>IP geolocation API</a></span>
629			</footer>
630		</div>
631
632		<!-- AddThis Smart Layers BEGIN -->
633		<!-- Go to http://www.addthis.com/get/smart-layers to customize -->
634		
634<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=six0r"></script>
634
635		
635<script type="text/javascript">
636		  addthis.layers({
637			'theme' : 'transparent',
638			'share' : {
639			  'position' : 'left',
640			  'numPreferredServices' : 5
641			}   
642		  });
643		</script>
643
644		<!-- AddThis Smart Layers END -->
645
646		
646<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
646
647        
647<script>window.jQuery || document.write('
647<script src="/js/vendor/jquery-1.11.3.min.js"><\/script>')</script>
647
648
649        
649<script src="/js/vendor/bootstrap.min.js"></script>
649
650		
650<script src="//code.highcharts.com/highcharts.js"></script>
650
651		
651<script src="/js/main.js"></script>
651
652		<!-- Begin Cookie Consent plugin by Silktide - http://silktide.com/cookieconsent -->
653		
653<script type="text/javascript">window.cookieconsent_options = {"message":"We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information you’ve provided to them or they’ve collected from your use of their services. Third parties such as Google may use cookies on ipv6-test.com for ad personalisation, you can lean more about how Google uses this data at <a href='https://policies.google.com/technologies/partner-sites'>Google’s Privacy & Terms site</a>.","dismiss":"Got it!","learnMore":"More info","link":null,"theme":"dark-bottom"};</script>
653
654		
654<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/1.0.10/cookieconsent.min.js"></script>
654
655		<!-- End Cookie Consent plugin -->
656	</body>
657</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.