Jump to content
Sign in to follow this  
zackrspv

WoW Server Latency Test via UDP

Recommended Posts

zackrspv

Purpose of Script: Test for which servers are located closest to the person running the test.

Method: This script uses UDP to the WoW servers (since UDP is used for voice on their servers) to test which one responds the fastest to the client.

Limitations:

A. Remember, UDP is not unknown for being Unreliable. In fact, Unreliable Data Packet is said pretty commonly.

B. Wrote in the PRODUCTION version of Auto.IT, meaning that it is: 3.2.10.0; I tried to make it beta compatible but the _ArraySort() functions didn't seem to work.

Success Rate: I have ran over 50 permutations (runs of this script) and all of the servers that it gives to me are indeed within my time zone, and when i tracert to them, they are closer to me than any of the other servers. So, I'd say the success rate is about 90% or so.

You can go here: WoW Realm Information to test if your results are somewhat accurate.

Server locations are now built into the array.

Note, i'm located in Northern Idaho (way northern), and connected via 10mb Cable. My closest PHYSICAL Data Center is Seattle; however when I test each of the servers on the Seattle Data Center, none of them are faster than the connection to the Los Angeles Data Center. Considering that I use Road Runner cable, i'm not too surprised about that. Often in on the internet, physical location doesn't account for squat based on how the ISP has routed their WAN connections.

Process:

1. Looks for servers.txt

-->If not found, builds it

-->If found, uses it for step #2

2. Counts how many servers exist in servers.txt and Dim's an array with that many indexes

3. Builds the array out, automatically inserting server name and IP address in proper indexes and sub indexes

4. Runs test to find out which server is closest, and stores speed data within the main array.

-- NOTE --

A. This test runs 3 times; each permutation's fastest server is stored within a separate array. Once all 3 tests are completed, it sorts the final fastest server array and gives the fastest results to the user.

B. UDPStartup() and UDPShutdown() are called for each permuted step (not for each server test, but for each pass of the script, called 3 times for entire run). I dunno why I did it that way, i could make up some really cool sounding feature, but hey, i did it that way, and it's there lol

I'M NEW WHEN IT COMES TO UDP/TCP TESTS SO I PROBABLY DID THIS WRONG, but it was quite nice to see the results always come back within my time zone and pretty close to my virtual location. So at least, maybe, i did something right.

UPDATE May 15, 2008:

A. Added server data center location to array

B. Now shows the data center code (LA/BO/DA/SE) when looking in mini window

C. Shows Data Center location when showing fastest response server.

Function List

BuildList();- builds the servers.txt file, accurate as of May 13, 2008
Done();- Display the fastest server.
TCPTest();- Actually performs the UDP test
CountLines();- Counts how many servers in servers.txt
BuildArray();-  Creates the Servers Array

Received Concerns:

1. Is this a PONG attack?

----> No; it's kinda hard to consider this an attack of ANY nature, as all it is doing, in reality, is waiting for the connection to be closed by the remote server. To be considered an attack, the program would have to open tens to hundreds/thousands of connections to the server at the same time, or over a very breif period of time. In reality, the program just isn't designed to do this. Secondly, the program uses UDP to test with; since UDP is fire and forget, I HIGHLY doubt the server would care what information it is being sent. It only cares, and responds, if the UDP information is what it is expecting, and if not, CLOSES the connection.

2. It doesn't work.

----> As i said, it MAY or MAY not work. This also has to deal with CONNECTION TYPE as well. For example, Dialup, Sattelite, AirCards and Wireless CPE (from a tower), will most likely NOT give you accurate results, or results as you would expect them, mainly because the IP address it is referencing against is located at the NOC, not at your physical location. What WOULD be interesting to know, however, is what type of CONNECTION you have, what TIMEZONE you are in, and what SERVERS it returns for you :)

Files

Note, that servers.txt is NOT a required download; the script will build one for you if you don't have it.

wowLatTest.au3

servers.txt

Edited by zackrspv

-_-------__--_-_-____---_-_--_-__-__-_ ^^€ñ†®øÞÿ ë×阮§ wï†høµ† ƒë@®, wï†høµ† †ïmë, @ñd wï†høµ† @ †ïmïdï†ÿ ƒø® !ïƒë. €×阮 ñø†, bµ† ïñ§†ë@d wï†hïñ, ñ@ÿ, †h®øµghøµ† †hë 맧ëñ§ë øƒ !ïƒë.

Share this post


Link to post
Share on other sites
zackrspv

UPDATE May 15, 2008:

A. Added server data center location to array

B. Now shows the data center code (LA/BO/DA/SE) when looking in mini window

C. Shows Data Center location when showing fastest response server.


-_-------__--_-_-____---_-_--_-__-__-_ ^^€ñ†®øÞÿ ë×阮§ wï†høµ† ƒë@®, wï†høµ† †ïmë, @ñd wï†høµ† @ †ïmïdï†ÿ ƒø® !ïƒë. €×阮 ñø†, bµ† ïñ§†ë@d wï†hïñ, ñ@ÿ, †h®øµghøµ† †hë 맧ëñ§ë øƒ !ïƒë.

Share this post


Link to post
Share on other sites
Homer90001

Works good. The only problem I found was when I tested it (From Texas) it showed "Cho'gall" as the fastest server, which is true. What was wrong was that it said "LA:Cho'Gall" in the output box when that server is located in the Dallas Datacenter.


"A man who has never gone to school may steal from a freight car; but if he has a university education, he may steal the whole railroad." - Theodore Roosevelt

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×