Link to home
Start Free TrialLog in
Avatar of PurpleSlade
PurpleSlade

asked on

How to disguise ping

I was wondering if anyone might have any ideas on how to disguise a ping.  I am a member of a gaming community that is pretty small.  When you join a multiplayer game, it shows your ping on the screen.  So since the community has become so small, people can basically identify you based on your ping to them.  Sometimes I just want to be incognito so I want to disguise it.  So .... Does anyone have any ideas on how to increase a ping?  Maybe do something to increase the traffic or tie up resources?  Maybe a small network utility or something?  I am submitting this in Perl and Java since I'm most comfortable programming on those.
Avatar of PurpleSlade
PurpleSlade

ASKER

Also, one thing I just thought of is  that I would need to vary the ping so people wouldn't become accustomed to the new one.
I believe the ping is generated either by the round trip time of a data packet from the server to you, of by the trip time of a data packet from you to the server (it depends on which end generates the packet).  Since this is likely hard-coded into the game, it's unlikely you can do anything to influence it.

You certainly can't speed it up, unless you can re-code your game or the server to report false results.  You might be able to get it to report slower than actual times by capturing the incoming or outgoing packet at the port it uses and either delaying its return or its transmission.

I suppose you could eliminate it entirely by closing the ping port, unless that port is used for other things in the game.

I'm not sure why you want to do this -- what does it matter if other players know or suspect who you are?
Avatar of Mick Barry
doubt u can get stop it. And if you did it may well affect other things.
Your terminology is a bit confused.  "shows your ping on the screen", doesn't make sense.  

ping is a utility that sends ICMP packets to the specified IP address/es.  If you substitute "ping" for "my IP address", then your question makes more sense.

As to disguising your IP address, it very much depends on how you connect to the multiplayer game.  If the client supports proxies, then you could possibly go via an anonymous proxy.
it may not even be pinging you, it may be the joining of the game that gets your details
Many multiplayer online games display a ping stat.  The stat is useful to players in selecting a server to join that's running the game -- it allows them to select a server to which they have a fast (faster?) connection, and thus allows them to minimize the impact of lag while gaming -- lag can get you dead in a hurry in a FPS deathmatch...!

I don't really see the usefulness of player-to-player ping stats, unless the game doesn't run on a centralized server model.
"I'm not sure why you want to do this -- what does it matter if other players know or suspect who you are?"  
Basically I just want to play anonymously.  It's as simple as that.  I don't want to have people think they know me or my playing style or want to talk to me or be my friend or even my enemy.  I just want to play and enjoy the game and not get caught up in the rest of it.  Unfortunately after you've been playing for as long as I hvae *everyone* knows you.  There is some fun in playing anonymously, too.  I have had my 15 minutes of fame in the game and just kind of want to blend in with the crowd so to speak.
it sounds like you need to use a proxy (at Tintin mentions ), but think you'd also need to keep changing that proxy.
If the connection is able to be proxied, you can go through a proxy anonymiser to ensure you have a unique IP address each time.
"Basically I just want to play anonymously."

Understood.  Unfortunately, I can't think of a way you might do that, since it's likely that the ping stat generation and display is hard-wired into the game.

If you're willing, tell me what game it is, and I'll dig a bit deeper...

I'm not sure if the game runs on a centralized server model or not (it is gamespy if that means anything to you), but knowing each players ping relative to yourself is useful for probably the same reason - you can determine up front whether you're going to lag to that person or not - many times if a person joins that has a high ping, the host will ask them to leave and if they don't he/she will boot them.  Also, It could be that the server pings both parties and displays their relative pings which is probably what happens rather than a direct p2p ping.  At any rate, pings were not intended to use as an identification system, but with so few people it is pretty easy to determine who is who by ping.  What I have noticed is that some people that are running programs on their machines (especially file sharing ones)  like Kazaa for example, have pings that fluctuate and are higher than normal (which usually results in people saying "HEY TURN YOUR PROGRAMS OFF PLEASE - YOUR PING IS SPIKING).  I was wondering if it might be possible to write a program that mimics that, but on a lesser level.  

I am hoping that someone finds this intriguing enough to maybe help me out.  I know it's kind of an odd request but it's almost to the point where I can't enjoy the game anymore because everyone knows me - part of it is a pride thing - I used to be tops and now my skills have diminished and I just want to play privately.  It's sort of like old athletes that want to play past their prime.  :)  The only difference is that I don't want everyone to see me play when I'm not my best, and I would like to build my skills back up again.  I am not a villain trying to hide - I am a good guy in the community and have played it since December of 2000!!!  I just want to play some games anonymously!  :(
"it may not even be pinging you, it may be the joining of the game that gets your details"

Basically there are 2 ways that people can identify you - one is if you host a game and then it will display your IP for the world to see, which I also would love to thwart because now I don't want to host games anymore either.  The other is the one that is more indefensible which is the ping thing.  That displays when you join the game and each player sees what his ping is relative to the other player.  
"If you're willing, tell me what game it is, and I'll dig a bit deeper..."

It is S _ a _ c - r - i _ f - i * c -- e
Gamespy requires the following ports to be open:

6667 (IRC)
3783 (Voice Chat Port)
27900 (Master Server UDP Heartbeat)
28900 (Master Server List Request)
29900 (GP Connection Manager)
29901 (GP Search Manager)
13139 (Custom UDP Pings)
6515 (Dplay UDP)
6500 (Query Port)

I suspect that port 13139 might be the culprit.  It could also be port 6500, but as I recall (I used to run several gaming servers -- BF1942, MOHAA, UT2004 and the like -- but it was a while ago...) port 6500 is required to be open or your GameSpy connection won't work.  You could try closing 13139, and see what effect it has.  What firewall do you have on your Internet connection?
Why not just change your username?
SOLUTION
Avatar of Adam314
Adam314

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I don't know if tieing up the CPU will have much effect - I think you would need to tie up the internet connection.
How are you identified in a 'ping' by username or IP address or what?
"Why not just change your username?"
I do that all the time, but that's where the ping comes in.  You basically have a unique ping to other players, and pretty much everyone writes them down so that they know who they're playing.  So basically there are 2 means of identification:

1) When you create a game - if you host a game, your game appears in a list of games.  When other players click on it, it will show your IP address.  
2) When you join a game, your ping displays along with the other players, so it will show something like

elTaco              - 0         (me, I have zero ping to myself obviously)
MrAnderson     - 250
DarthRonin       - 344
Jakal                - 125

Next time people play a game, let's say all the players are the same but they log in under different names

elTaco               - 0 (me again)
Neo                   - 250 (I know this is MrAnderson)
DarthVader       - 344 ( I know this is DarthRonin)
Lion                   - 125 ( I know this is Jakal)

And of course we might boot DarthRonin because of his high ping.  ;-)
"What firewall do you have on your Internet connection?"
Currently I think all I have is the windows firewall
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
>>the anonymizing proxy approach

(which of course Tintin mentioned)
I'm surprised the ping times are that fixed... Is this a local network, or across the internet?
>>I'm surprised the ping times are that fixed

I doubt if it matters if they were not. To use PurpleSlade's example, were they to change, the times for Neo and Mr. Anderson would, i guess, move in tandem, further underlining their being associated with the same player, IOW, Neo==Mr. Anderson
If they were not fixed, other players would be able to use them.

What he is saying is that MrAnderson logs in and has a ping of 250.
Another time Neo logs in and has a ping of 250.  The other players know that Neo is the same computer (same player) because Neo has the same ping time now that MrAnderson had before.

Neo and MrAnderson would never be logged in together.

My comment was that I'm surprised from one log-in to the next (could be the next day, days later, weeks later...) the ping times don't change.  If I ping a computer now, and again tomorrow, I won't get the same ping times.

I can play an online game with the same people many times, and the ping times will vary by hundreds of percent from one game to another.
"I can play an online game with the same people many times, and the ping times will vary by hundreds of percent from one game to another."

That's my experience, too.  But, when I ran my gaming clan, we had about a 50/50 mix of clan members from the US and from Australia.  The game server was on the US east coast, and you could clearly tell who the Aussies were each time.  Though the numbers weren't the same all the time, the degree of difference between the US based players and those in Australia was pretty similar, and the Aussies were obvious.
Yes, I can tell if someone is from another country... but to friends who are a few states away that I play with regularly, I would never be able to identify one of them by their ping time.
>>Neo and MrAnderson would never be logged in together.

Well according to PurpleSlade, if i read it correctly, they are
I think what PurpleSlade is saying that they (MrAnderson and Neo) are the same person, using a different username.  But others know who it is because the ping time is the same.
The goal is not to allow other players to know who you are.
>>I think ... The goal is not to allow other players to know who you are.

That was precisely my point
If you can use a linux firewall in between your machine and the game server (or if your game machine is a linux machine), you could use tc (traffic control) to artificially slow down traffic: http://www.kdedevelopers.org/node/1878

you could also use iptables but it might not be as easy: http://www.google.com/search?q=iptables+simulate+slow+network

You could also look at iptables' tarpit patch
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
You should give the Network Simulator that Wod linked to a try.  It looks as though this might do what I was describing -- delay the return of the ping to the server, and thus change your ping time.  It looks as though you can also vary the delay with this utility.  Nice find, Wod.
With tcp/ip stack filtering, you'd have to arrange filtering w.r.t. the different sessions (and therefore ids) you had open from the same box. This could be tricky
"Yes, I can tell if someone is from another country... but to friends who are a few states away that I play with regularly, I would never be able to identify one of them by their ping time."

You have to keep in mind the smallness of the community.  It is so small now that it's pretty easy to keep a list of who has what ping.  The ping ranges are very rarely off.  Unless you move or maybe get a better connection, that's pretty much the ping that you're saddled with.

I will try some of these ideas soon and let everyone know what happens.  I'll even post screenshots of the ping screen so people can have a visual, but haven't been able to get a game going the last couple times I logged on.
Hi all - apologies that this is taking me so long - I finally was able to download the Network Simulator, but I'm not sure how to configure it and not sure how to start it.  Will let you know how it's going.
following are screenshots of the join screens and in room waiting for games so you can see - ip is displayed in join screen and pings are displayed in the pre-game room:

http://img526.imageshack.us/my.php?image=sacss1ev8.png
http://img515.imageshack.us/my.php?image=sacss2vi8.png
http://img156.imageshack.us/my.php?image=sacss3aw7.png
Here is a screenshot of the netsim but i'm not sure where to begin

http://img156.imageshack.us/my.php?image=netsimtk8.png
Most setting are probably optional but here is a list of which one you should fill out:

LocalIP: your IP (type "ipconfig" in a command prompt and use Ethernet adapter Local Area Connection IP Address)
Remote IP: game server IP
transport protocol: probably UDP, but you can put ANY
Local Port: you can use "netstat -a"  in a command prompt to find out (while you are connected to the server) or use ANY
Remote Port: The game server port you are connecting to or ANY
Simulated Delay: 250ms both in Local -> Remote and Remote -> Local

you should be able to leave the rest blank.

if that doesnt work, read the help file
Thanks for your attempts to help, I appreciate it.
Since you asked this question, I learned about another project that might help.  It's goal is to provide anonymity, but I'm sure it would change your ping time if you can get it working with the game.  It redirects your traffic through a bunch of other servers before going to it's final destination.  I've gotten it working with a web browser, but I believe it could be used with anything.  I wouldn't know how to set it up for your game though...

http://www.torproject.org/