- “Why I don't see my server?” - i know why, look.
14 replies, posted
Hello, dears.
I working on game hosting and yesterday us client write to us with problem. The problem was that he did not see his server in the search.
Yes, it happens if you break the rules. As we know, the server may not be shown for several reasons:
Fake population
Redirects
EAC disabled but listed publicly
Steam disabled
But this server was creation now and IP not was in listing here.
We began to look for the cause. When we began to watch the traffic via Wireshark received during the update of the list by the server, we noticed that the player’s server was received by us, was polled through SourceQuery, but was not showing in the list.
Then we wondered how the manifest with the list of blocked servers is processed by the game client and we began to look.
In Facepunch.Unity.dll exist class Manifest, where we can see this method:
public string[] Banned;
public bool IsBannedServer(string ip)
{
string[] banned = this.Banned;
for (int i = 0; i < banned.Length; i++)
{
string value = banned[i];
if (ip.StartsWith(value))
{
return true;
}
}
return false;
}
Cool, right? Someone probably will not understand, but I will explain. In array Banned we have list with all banned servers, which do not need showing in serverlist. In method IsBannedServer we checking in ip from master-server with value from every banned elements. But you can see, method working absolute incorrect, because here using method String.StartsWith for compaire two string.
What is the problem? For fun i check banned list and search IP with value "1" in last octet. And know what? - I find them.
The fact is that if you use the String.StartsWith() method, you will not see in the search for the server, which starts at x.x.x.1, if server with IP x.x.x.1 will adding in the blacklist, because if we will using this method for compaire strings, all IPs from x.x.x.10 to x.x.x.19 and from x.x.x.100 to x.x.x.199 will return TRUE;
Look how to work this code:
https://rextester.com/SCLJCC29077
And just try change StartsWith to Equals and re-run script. This problem actual for users, which rent server on game-hosting, because hosting can a have subnet with more ips, and with ip x.x.x.1 too. And if some bad boy will to break rules, others will suffer.
BTW, advice for developers - if the server is on the blocked list, you do not need to poll it at all, because it will not be displayed anyway.
At first I was going to come in and say "You're an idiot" and ban you. Then I looked and saw actual deductive skills and was impressed.
Then I looked at the code and said "No... it's going to be checking the port if it's using String.StartsWith()" and realized, I am the idiot because it'll incorrectly count shit. x.x.x.1 would flag x.x.x.10-x.x.x.19 and then the hundreds.
Good job.
Thanks for reply. I think, good practice - its use developer key from steam for bind the server to the account and when some user broke the rules, disable all keys for this user, but not IP.
Same principe is using in CS:GO server side.
And when user change server IP, he can saving server in favorite tab for own players, if the key remains the same.
I'll be damned, you just helped me understand arrays more clearly...
Please allow me to clarify the situation for non-technical people seeking a solution to this...
If your server is not showing on the list but it's not banned either, then you are likely one of the unlucky people whose server IP address happens to have some of the same numbers in it as a banned server, and you have been erroneously omitted from the list due to poor coding. In other words, it's a bug.
The only thing you can do about it at this point is to change your server IP.
I created this topic not for to be able to refer to it from similar topics.
It was an attempt to draw the attention of developers to the actual problem of hosting providers.
When you blocked IP-address, "bad boy" just change that and blocked IP can go over for new server owner.
I don't know why moderator attach this topic. This is not rule and not FAQ. Just a request of help.
This is a common thread topic.
This is also a community forum. To directly contact the developers with this bug report, please file a ticket. Submit a request – Facepunch Studios
I pinned it because it's useful information, it will also draw a devs attention if they show up here for whatever reason.
I want to forward my server port ,but it can't appear in community server list ,so i think rust developer should study Don't starve together ,and use token.
You will have to set a static IP aswell if you want people to join your server.
Not true.............
Seems that the network can just about handle the changing ip addresses as long as they don't change during a session.
The ip was changing every now and again on my server and I was struggling to have friends join without it
Read everything and again do not understand good how can use something from this post and help myself but something has to be done for sure from developers. If you rent server and you search it, chance to see it is 50% and that happens after 1-2 minutes of waiting. Some of my players said that server is Ok, other said its not showing inside list but via connect IP works normal. Also if you manage to host country server for example players form your country can see servers by ping but typing Country abbreviation or FULL name inside hostname does not matter at all and they see only low ping 10-20 servers on Top of the list.
Example: Server name: (France) bla bla hosted form your pc at France will show for people in France but if you name it (USA) bla bla made for American players will still show with ex 20 ping in server browser when someone from france open Rust. In America they will eventually see the server through search (USA) with some waiting time or never see it. Some countries do not have host providers so mostly you rent somewhere from Europe. And for example Balkan states and Europe is 50 ping but it takes too long to list properly...
Would be nice if there is system that detects players home country and shows servers with that country inside name too and better checks. Also searching server no matter what region is should be more faster and see servers equally shown inside list.
And now final surprise -> When you see sometimes Korean sh*t servers with 499/500 (last time saw 1 server 30 times in the list ) when sort by Players inside server browser. I said every server should be equally displayed and have fair chance to be seen if not blocked you know but there shouldn`t be 300 ping servers shown until search their name... (That`s not complaint about specific server!!! Just simple exampe like other ones above)
Sorry about if made it at one point out of topic but i think all that`s true.
Sorry, you need to Log In to post a reply to this thread.