<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Узнать скорость интернет-соединения]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12866&amp;type=atom" />
	<updated>2017-08-06T09:12:47Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=12866</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Узнать скорость интернет-соединения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=117877#p117877" />
			<content type="html"><![CDATA[<p>Раньше Speedtest.net позволял устанавливать тестилку на сайт. Но можно и просто какой-нибудь файл известного размера скачивать и время засекать.<br /></p><div class="codebox"><pre><code>date = %A_DD% %A_MMM% %A_Hour%:%A_Min%
StartTime := A_TickCount
UrlDownloadToFile, http://grisha.unixserv.ru/speedtest/speedtest/random2000x2000.jpg, %A_Temp%\speedtest
EndTime := A_TickCount
If !ErrorLevel ; если не произошло ошибок
	{
	FileGetSize, filesize, %A_Temp%\speedtest ; определяется размер скачанного файла в байтах
	Calc := filesize*8/(10**6) ; определяется размер скачанного файла в мегабитах
	Calc := Round(Calc/((EndTime - StartTime)/1000),2) ; определяется средняя скорость загрузки
	FileAppend, %date%%A_Tab%DL %Calc% Mbit/s`r`n, history.ini ; результат записывается в журнал
	}
Else FileAppend,%date%%A_Tab%ERROR`r`n, history.ini</code></pre></div>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2017-08-06T09:12:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=117877#p117877</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Узнать скорость интернет-соединения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=117741#p117741" />
			<content type="html"><![CDATA[<p>Нет, она мониторит только общий траффик. Перед запросом:</p><div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>определить, сколько байт в JSON, засечь время, определить, сколько времени заняла отправка, когда она будет завершена</p></blockquote></div><p> и поделить байты на время.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2017-08-01T19:12:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=117741#p117741</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Узнать скорость интернет-соединения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=117740#p117740" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong>, феенкс, то есть мне просто перед запросом указать функцию TrafficMonitoring(1000) и все?</p>]]></content>
			<author>
				<name><![CDATA[kuakua_kuakua333]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=37986</uri>
			</author>
			<updated>2017-08-01T19:05:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=117740#p117740</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Узнать скорость интернет-соединения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=117738#p117738" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>kuakua_kuakua333 пишет:</cite><blockquote><p>какие-никакие файлы все равно передаются всегда, вот хотелось бы узнать, как мониторить это дело.</p></blockquote></div><p>Писал когда-то:<br /></p><div class="codebox"><pre><code>#Persistent
TrafficMonitoring(1000)
Return

TrafficMonitoring(period := 0)  {
   static IsSet
   
   if !IsSet  {
      IsSet := true
      UpdateTraffic()
      SetTimer, % A_ThisFunc, % period
      Return
   }
   obj := UpdateTraffic()
   TrayTip,, % &quot;Downloaded: &quot; . obj.Downloaded
             . &quot;`nUploaded: &quot; . obj.Uploaded
             . &quot;`nUploadBytePerSec: &quot; . obj.UploadBytePerSec
             . &quot;`nDownloadBytePerSec: &quot; . obj.DownloadBytePerSec
}

UpdateTraffic()  {
   static dnOld, upOld, IsSet, TrInfo, timeOld

   if !IsSet {
      IsSet := true
      TrInfo := new TrafficInfo
      data := TrInfo.GetInfo()
      dnOld := data.dn
      upOld := data.up
      timeOld := A_TickCount
      Return
   }

   data := TrInfo.GetInfo()
   dnNew := data.dn
   upNew := data.up

   timeNew := A_TickCount
   elapsedSec := (timeNew - timeOld)/1000
   dnRate := Round( (dnNew - dnOld) / elapsedSec )
   upRate := Round( (upNew - upOld) / elapsedSec )

   timeOld := timeNew
   dnOld := dnNew
   upOld := upNew

   Return { Downloaded: dnNew, Uploaded: upNew, UploadBytePerSec: upRate, DownloadBytePerSec: dnRate }
}

class TrafficInfo  {
   __New()  {
      static MIB_IF_ROW2
      this.hModule := DllCall(&quot;LoadLibrary&quot;, Str, &quot;Iphlpapi.dll&quot;, Ptr)

      VarSetCapacity(MIB_IF_ROW2, 1352, 0)
      this.pData := &amp;MIB_IF_ROW2

      DllCall(&quot;iphlpapi\GetBestInterface&quot;, Ptr, 0, PtrP, IfIndex)
      NumPut(IfIndex, this.pData + 8)
   }
   
   __Get(key)  {
      if key in dn,up
         Return NumGet(this.pData + (key = &quot;dn&quot; ? 1256 : 1320), &quot;Int64&quot;)
   }

   __Delete()  {
      DllCall(&quot;FreeLibrary&quot;, Ptr, this.hModule)
   }

   GetInfo()  {
      DllCall(&quot;iphlpapi\GetIfEntry2&quot;, Ptr, this.pData)
      Return { dn: this.dn, up: this.up }
   }
}</code></pre></div><p>Значения Downloaded и Uploaded — это в байтах с начала сессии, можно проверить, если щёлкнуть в папке «Сетевые подключения» по текущему подключению. Значения UploadBytePerSec и DownloadBytePerSec — сколько отправлено и загружено в последнюю секунду.</p><div class="quotebox"><cite>kuakua_kuakua333 пишет:</cite><blockquote><p>json объект на сервер через WinHttpRequest.5.1, можно-ли тогда узнать, какова была скорость интернета при отправке данных?</p></blockquote></div><p>Тут всё просто — определить, сколько байт в JSON, засечь время, определить, сколько времени заняла отправка, когда она будет завершена.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2017-08-01T18:47:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=117738#p117738</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Узнать скорость интернет-соединения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=117737#p117737" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong>, ну какие-никакие файлы все равно передаются всегда, вот хотелось бы узнать, как мониторить это дело.<br />Или же смотрите, я передаю json объект на сервер через WinHttpRequest.5.1, можно-ли тогда узнать, какова была скорость интернета при отправке данных?</p>]]></content>
			<author>
				<name><![CDATA[kuakua_kuakua333]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=37986</uri>
			</author>
			<updated>2017-08-01T17:56:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=117737#p117737</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Узнать скорость интернет-соединения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=117736#p117736" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong>, извиняюсь, ошибся, DLL*.</p>]]></content>
			<author>
				<name><![CDATA[kuakua_kuakua333]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=37986</uri>
			</author>
			<updated>2017-08-01T17:55:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=117736#p117736</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Узнать скорость интернет-соединения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=117735#p117735" />
			<content type="html"><![CDATA[<p>А что такое DDL? И скорость чего измерять, если никакая информация не передаётся? Можно узнать у провайдера, какая скорость заявлена.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2017-08-01T17:41:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=117735#p117735</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Узнать скорость интернет-соединения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=117734#p117734" />
			<content type="html"><![CDATA[<p>Хеллоу.<br />У меня возник вопрос: возможно-ли как-то через DDL узнать скорость интернета, не отправляя запросы к сайту?</p>]]></content>
			<author>
				<name><![CDATA[kuakua_kuakua333]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=37986</uri>
			</author>
			<updated>2017-08-01T17:32:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=117734#p117734</id>
		</entry>
</feed>
