Kendi Sitemde Hız Testi Nasıl Sağlarım ?

livcon

Üye
21 Tem 2021
155
87
21
Merhaba arkadaşlar

Kendi internet sitemizde kullanıcılarımızın internet hızını nasıl test ederiz bundan bahsedeceğim. Forum'da biraz araştırma yapmam sonucunda bunun hakkında sadece 1 konu açıldığını gördüm. İnternette de yeterli Türkçe kaynak bulamadığım için bu sistemin yapılışını araştırıp Türkçe kaynak şeklinde bu forum üzerinden paylaşmak istedim. (Yöntem olarak JavaScript ve C#(.NET) dillerini kullanacağım)




JavaScript ile Hız Testi:

Kullanıcı herhangi bir siteye girdiğinde, sitede kayıtlı olan fotoğrafları görebilmek için yükleme işlemi gerçekleştirir. Biz de bu sistemden yararlanıyoruz. Boyutunu bildiğimiz belirli bir dosyayı JavaScript üzerinden tanımlatıyoruz. Kullanıcı siteye girdiğinde "onload" ile bu fotoğrafı yükleme olayının ne kadar sürede gerçekleştiğini çekiyoruz. Elde ettiğimiz bu süreyi resim dosyası boyutuna bölüyoruz, böylece kullanıcımızın download hızının ne kadar olduğunu öğrenmiş olacağız. Bu sayede kullanıcının kesin hızını öğrenemeyiz, en azından çerezlerini sıfırlamamız gerekiyor, aksi takdirde çerezlerden dolaylı fotoğrafı daha hızlı yükleyecektir.


JavaScript:
var imageAddr = "http://www.tranquilmusic.ca/images/cats/Cat2.JPG" + "?n=" + Math.random();
var startTime, endTime;
var downloadSize = 5616998; //Yukardaki fotoğrafımızın dosya boyutunu byte cinsinden yazıyoruz
var download = new Image();
download.onload = function () {
    endTime = (new Date()).getTime();
    showResults();
} // yükleme tamamlandıktan sonra onload ile tekrar zamanı çekerek bitiş zamanı olarak ayarlıyoruz
startTime = (new Date()).getTime(); // javascript yüklenince başlangıç süresi ayarlanmış oluyor (javascript yüklenince dosyamız daha yeni yüklenmeye başlamış olacak zaten
download.src = imageAddr;

// Süreyi ve hız hesaplamalarını yapmak için aşağıdaki formülleri kullanıyoruz

function showResults() {
    var duration = (endTime - startTime) / 1000;
    var bitsLoaded = downloadSize * 8;
    var speedBps = (bitsLoaded / duration).toFixed(2);
    var speedKbps = (speedBps / 1024).toFixed(2);
    var speedMbps = (speedKbps / 1024).toFixed(2);
    alert("Bağlantı hızınız : \n" +
           speedBps + " bps\n"   +
           speedKbps + " kbps\n" +
           speedMbps + " Mbps\n" );
}




ASP.NET ve C# ile Hız Testi:


HTML:
HTML:
<asp:Label ID="lblDownloadSpeed" runat="server" />
<asp:Button Text="Check Speed" runat="server" OnClick="CheckSpeed" />

Controller:
C#:
using System.Net;
using System.Linq;

protected void CheckSpeed(object sender, EventArgs e)
{
    double[] speeds = new double[5];
    for (int i = 0; i < 5; i++)
    {
        int jQueryFileSize = 261; //Size of File in KB.
        WebClient client = new WebClient();
        DateTime startTime = DateTime.Now;
        client.DownloadFile("http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.js", Server.MapPath("~/jQuery.js"));
        DateTime endTime = DateTime.Now;
        speeds[i] = Math.Round((jQueryFileSize / (endTime - startTime).TotalSeconds));
    }
    lblDownloadSpeed.Text = string.Format("Download Speed: {0}KB/s", speeds.Average());
}



Umarım sizlere bu konuda yardımcı olabilmişimdir. Yanlışım veya atladığım bir yer olursa lütfen uyarın. Şimdiden kolay gelsin, iyi günler :)




Ekstra Linkler:

HIZ TESTİ İLE İLGİLİ TURK HACK TEAM'DEKİ DİĞER KONU
JSpeedTest kütüphanesi kullanarak hız testi yapmak
C# ile pingleme yöntemi
arayüz için alınan toplam byte sayısını görmek




Kaynakça:

 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.