zackrspv Posted May 15, 2008 Share Posted May 15, 2008 (edited) 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 #22. Counts how many servers exist in servers.txt and Dim's an array with that many indexes3. Builds the array out, automatically inserting server name and IP address in proper indexes and sub indexes4. 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 lolI'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 arrayB. Now shows the data center code (LA/BO/DA/SE) when looking in mini windowC. Shows Data Center location when showing fastest response server.Function ListBuildList();- 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 ArrayReceived 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 FilesNote, that servers.txt is NOT a required download; the script will build one for you if you don't have it.wowLatTest.au3servers.txt Edited May 15, 2008 by zackrspv -_-------__--_-_-____---_-_--_-__-__-_ ^^€ñ†®øÞÿ ë×阮§ wï†høµ† ƒë@®, wï†høµ† †ïmë, @ñd wï†høµ† @ †ïmïdï†ÿ ƒø® !ïƒë. €×阮 ñø†, bµ† ïñ§†ë@d wï†hïñ, ñ@ÿ, †h®øµghøµ† †hë 맧ëñ§ë øƒ !ïƒë. Link to comment Share on other sites More sharing options...
zackrspv Posted May 15, 2008 Author Share Posted May 15, 2008 UPDATE May 15, 2008: A. Added server data center location to arrayB. Now shows the data center code (LA/BO/DA/SE) when looking in mini windowC. 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ë 맧ëñ§ë øƒ !ïƒë. Link to comment Share on other sites More sharing options...
Homer90001 Posted July 13, 2008 Share Posted July 13, 2008 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 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now