Created
July 7, 2009 12:31
-
-
Save rue/142048 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
irb(main):020:0> class BF2142Query | |
irb(main):021:1> | |
irb(main):022:1* def initialize(server, query_port) | |
irb(main):023:2> @socket = UDPSocket.new | |
irb(main):024:2> @socket.connect(server, query_port) | |
irb(main):025:2> self.query | |
irb(main):026:2> end | |
irb(main):027:1> | |
irb(main):028:1* def query | |
irb(main):029:2> array = self.challenge | |
irb(main):030:2> puts array.inspect | |
irb(main):031:2> query = [0xFE,0xFD,0x00,0x10,0x20,0x30,0x40,array[0],array[1],array[2],array[3],0xFF,0xFF,0xFF,0x01].pack("c*") | |
irb(main):032:2> @socket.send(query, 0) | |
irb(main):033:2> receive = @socket.recvfrom(4096) | |
irb(main):034:2> puts receive | |
irb(main):035:2> end | |
irb(main):036:1> | |
irb(main):037:1* def challenge | |
irb(main):038:2> challenge = [0xFE,0xFD,0x09,0x10,0x20,0x30,0x40].pack("c*") | |
irb(main):039:2> @socket.send(challenge, 0) | |
irb(main):040:2> receive = @socket.recvfrom(4096) | |
irb(main):041:2> receive = receive[0] | |
irb(main):042:2> receive = receive[5..-1].to_i | |
irb(main):043:2> if receive < 0 | |
irb(main):044:3> receive = 4294967296 - receive.abs | |
irb(main):045:3> end | |
irb(main):046:2> puts receive | |
irb(main):047:2> receive = receive.to_s(16).scan(/../).map{ |x| x.to_i(16) } | |
irb(main):048:2> end | |
irb(main):049:1> | |
irb(main):050:1* end | |
=> nil | |
irb(main):053:0> bad = ["64.34.183.10", 29900] | |
=> ["64.34.183.10", 29900] | |
irb(main):054:0> good = ["64.34.212.154", 29900] | |
=> ["64.34.212.154", 29900] | |
irb(main):055:0> BF2142Query.new *good | |
1193489774 | |
[71, 35, 53, 110] | |
0@splitnumhostname -lTBGl- 24/7 WAKEgamenamestellagamever1.10.48.0mapnameWake_Island_2142gametypegpm_cagamevariantbf2142numplayers21maxplayers64gamemodeopenplayingpassword0timelimit0roundtime4hostport17567bf2142_ranked1bf2142_anticheat1bf2142_autorec0bf2142_d_idxhttp://bf2142_d_dlhttp://bf2142_voip1bf2142_autobalanced1bf2142_friendlyfire0bf2142_tkmodeNo Punishbf2142_startdelay10bf2142_spawntime15.000000bf2142_sponsortextbf2142_sponsorlogo_urlhttp://www.tbgclan.com/true.jpgbf2142_communitylogo_urlhttp://www.tbgclan.com/true.jpgbf2142_scorelimit0bf2142_ticketratio100bf2142_teamratio100.000000bf2142_team1PACbf2142_team2EUbf2142_pure1bf2142_mapsize64bf2142_globalunlocks0bf2142_reservedslots0bf2142_maxrank0bf2142_provider10042bf2142_regionUSbf2142_type1bf2142_averageping93bf2142_ranked_tournament0bf2142_allow_spectators0bf2142_custom_map_url1http://bfeditor.org/index.php?lang=English&sec=maps&act=vmap&game=bf2142&map=player_ jamesthegreatn[Ger] DaggI*FAQC* Ugolin007 roughneck07 Donnerfausts BlackScorpi0n Olly2907 Rolandski Gladiator16 Groverz Klora natnat Shinjaki Engelz QBlueFalcon CasperFoo Kemdium Grober22 Lamingo BORACKRISPY[USEF] IseeU2*score_000000000000000000000ping_01182566271134151969493969394929193919191890 | |
AF_INET | |
29900 | |
mofreaky2.wolfservers.com | |
64.34.212.154 | |
=> #<BF2142Query:0x45a88 @socket=#<UDPSocket:0x45a24>> | |
irb(main):056:0> BF2142Query.new *bad | |
3611046409 | |
[215, 60, 50, 9] | |
0@splitnumhostnameDoorman is God TITANgamenamestellagamever1.10.48.0mapnameMinskgametypegpm_tigamevariantbf2142numplayers16maxplayers48gamemodeopenplayingpassword0timelimit0roundtime2hostport17567bf2142_ranked1bf2142_anticheat1bf2142_autorec0bf2142_d_idxhttp://bf2142_d_dlhttp://bf2142_voip1bf2142_autobalanced1bf2142_friendlyfire0bf2142_tkmodeNo Punishbf2142_startdelay15bf2142_spawntime15.000000bf2142_sponsortexthttp://doormanisgod.combf2142_sponsorlogo_urlhttp://doormanisgod.com/banners/banner_white_arial_mono.jpgbf2142_communitylogo_urlhttp://doormanisgod.com/banners/banner_white_arial_mono.jpgbf2142_scorelimit0bf2142_ticketratio100bf2142_teamratio100.000000bf2142_team1Pacbf2142_team2EUbf2142_pure1bf2142_mapsize48bf2142_globalunlocks0bf2142_reservedslots0bf2142_maxrank0bf2142_provider10042bf2142_regionUSbf2142_type1bf2142_averageping87bf2142_ranked_tournament0bf2142_allow_spectators0bf2142_custom_map_url1http://bfeditor.org/index.php?lang=English&sec=maps&act=vmap&game=bf2142&map=player_ Fuzzy_Head iSoldier3G23A|I| Capnjoe PhilReaper Solacus Burr11 CasperFoo Groverz DIMPAUL unkiemonkey RAFAKAEE Wyldex Kemdium Bungah natnat Phenrezscore_0000000000000000ping_286065137929593929492919091909093team_112221212112212 | |
AF_INET | |
29900 | |
64.34.183.10 | |
64.34.183.10 | |
=> #<BF2142Query:0x3fb60 @socket=#<UDPSocket:0x3fb38>> | |
irb(main):057:0> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment