A few days ago I wrote a little trick to improve your ping with BSNL by restarting the router until you get a better ping, well I just came across a solution which works every time. Although it is still not permanent it’s just one-time effort you have to do before starting DOTA2.
Step 1: Open your modem/routers settings, usually 192.168.1.1
Step 2: Go to Interface Setup (could be something else with yours)
Just set up a static IP setting to something that has previously given you good ping. Like for me, it was
Static IP Address: 117.205.84.228
Subnet Mask: 255.255.255.0
Gateway or Default Gateway: 117.205.80.1
you can also try the following details
Static IP Address: 160.202.185.129
Subnet Mask: 255.255.255.0
Gateway or Default Gateway: 160.202.184.1
Leave the rest of the setting as it is and save.
Unless you have noticed let me tell you your Internet is not working now.
Step 3: Go to Settings again and revert what we did in the previous step and use Dynamic IP instead.
Now you will be automatically assigned to a valid IP close to what
you entered before in Static IP settings.
Check your DOTA2 ping and thank me later.
Edit 1: This method is guaranteed to work just sometimes you have to do it multiple times.
Have patience and repeat until you get the desired IP around the ones mentioned above.