Author Topic: Global IP Ban List / Better IP Ban | Version 1.1.3 (2014/12/19 @ 10:13 PM est)  (Read 10468 times)

Better IP Ban
An IP Banner that connects to a list of IP's of known server crashers located here.

Description
Hate having servers crash on you from trouble makers? I know I sure do.
Well the chances are now cut down with this mod.
All you have to do is download it, enable it, and watch it do its magic.

Updated frequently
I'll do my best to check out the drama section frequently and update the list when ever I can.
If you'd like to check it out you can here.
Wanna help? Go ahead, send me a PM on the forums with the title of "New known crasher ( USER )" if it isn't already in my list.
Make sure you send a topic with sufficient proof, consisting of an IP, user, ID, and the server that was crashed.
If the person is in my list and there is more information on the said person such as another topic I missed, go ahead and PM me that too with the name of "Updated user info ( USER )".
I'll also check this topic, so those users who's PM privileges are revoked can also notify me.
Failure to do so will mean that I'll ignore all future PMs from you.

Accidental ban?
Were you accidentally added to the list and would like to get off?
Post sufficient evidence (or ask me to host) of you owning the IP, and I'll remove you from the list.

Commands & Features
In-game with Admin powers or greater, you can use /ListIPBans to see a list of IPs currently banned.
The format messaged is
IP Name( ID ) - Banned for the reason of: Given reason | Date
    Reference links
Super-admins can add to the server's personal ban list by banning a user with the command of /BanByIP ( User or BL_ID )
The host or a Super-Admin can make incoming connections visible to different groups by setting $Pref::Server::AnnounceIncoming to one of the following.
  • 0 - Echo
  • 1 - Host
  • 2 - Super Admin
  • 3 - Admin
  • 4 - Everyone
By default it is 0.

Enable BL_ID banning.
$Pref::Server::BLIDBan = 1;
This will ban the user by BL_ID at autoAdminCheck.
The user if willing to can crash the server before this.
This is added just in-case of IP changes.
If you find a user with a changed IP, inform me so I could update the list by replying to this topic.
Included in Ver 1.1.3

Auto BL_ID ban ignore list
$Pref::Server::IDIgnore = "BLIDs separated with spaces";
This will ignore the IDs included in the list.
Included in Ver 1.1.3

Auto ban by BL_ID bad IP's.
$Pref::Server::IPBanBLID = true;
This'll fetch the user's BL_ID if their IP is on the banned list, and perma-ban their ID.
Forgot to mention this about the update, it was included in Ver 1.1.3

Additional ban server adaptation.
The mod is made to allow additional servers to be added, in-case I've retired from my list.
All someone would need to do is make a code with this in it.
Code: (Additional Server) [Select]
$IPBanList::ServerHost[%count = $IPBanList::Count++] = "example.com";// Domain or IP address
$IPBanList::ServerDir[%count] = "/DirectoryToList.txt";// Starting with a blank line
$IPBanList::ServerPort[%count] = 80;// Port of choice
Or to overwrite the default, use 0. ( However, don't do this till I've given up on the list )

Planned features
Adding /BanByIP IP ( Soon ) Done, but not completely finished.
Checking BL_ID's also, in-case a user tries with a changed IP. Done.

Issues
Nothing currently.

Update History
   V1.0 - Add-on created!
   V1.0.1 - Reference Links quick-fix and better description for /ListIPBans
   V1.0.2 - Added the option to make incoming announcements display for the following groups - 0 echo, 1 host, 2 super-admins, 3 admins, 4 everyone.
   V1.0.3 - You'll no longer get kicked from your own server if you are on the list of banned IP's. (Checks your name against the hosted name )
   V1.1.0 - Added various features, such as banning by ID ( At AutoAdminCheck so the client can still have a chance to crash | Disabled by Default ).
        Reworked the ID list retriever to allow custom field ordering.
       
Screenshots
Nothing currently.

Download
  Server_BetterIPBan.zip
« Last Edit: December 20, 2014, 04:13:57 PM by Pah1023 »

Oh this looks nice.  You should add a check box that says "User caused server connection problems/suspected of DDoS/force crashing" or something of the like, which sends that note to a source, where if a number of instances are found, it adds all that information to that list.

An additional nice thing to have would be that a duplicate of the console.log from last session is created, and to have a search tool that would isolate information and automatically send it to the list.

This way we can safeguard ourselves before the issue arises and has to be investigated and discussed in Drama, because it would automatically sniff out the rats.

Oh this looks nice.  You should add a check box that says "User caused server connection problems/suspected of DDoS/force crashing" or something of the like, which sends that note to a source, where if a number of instances are found, it adds all that information to that list.

An additional nice thing to have would be that a duplicate of the console.log from last session is created, and to have a search tool that would isolate information and automatically send it to the list.

This way we can safeguard ourselves before the issue arises and has to be investigated and discussed in Drama, because it would automatically sniff out the rats.
Not quite sure what you mean about the check box.
But to clone the console.log is impossible unless if I create another console logger, which half the times for me doesn't work.
Sadly, there will still be server crashers, but this way we can cover more people before it spreads out like a wildfire.

Glad to see you release this. From what I understand it shows the Blocklanders who have referenced the bad blockheads for crashing servers.

This is a semi-efficient way to stop server crashes from "bl hack" , depending on your activeness and how active the community is. What I am worried about, is drama's being made that are inherently false or otherwise slandering players/servers just because they are butthurt from a ban, stupid drama, or something pity of the sorts.

If someone goes to a grapple knife and get owned because they are noob > they make a drama topic in the forums saying soandso is lagging/crashing the server and thats why they wern't good. I know its a ridiculous example but this stuff happens. A lot

What is to prevent an otherwise false accusation from occurring?

Quote from: Pah1023"
Accidental ban?
Were you accidentally added to the list and would like to get off?
Post sufficient evidence (or ask me to host) of you owning the IP, and I'll remove you from the list.
If by chance you go inactive in the near future for whatever reason, and many people retain this mod, it could make the difference between a legit player being able to connect to popular servers or not. Please stay and keep up the good work!

-snip-
Simple, I don't add people unless I see a good bit of people backing up the topic, witnesses and stuff.
The primary reason why there is the references part of the list, [1] [2], etc..

If I were to go in-active, I'd make sure I'll update the list to another trustworthy user's list if he/she decides to continue it.
However it may be soon seeing as I might be moving in the next month or so.
I'll look more into a replacement tomorrow or something, until then I'll be working on it.
But I'll try my best to see if I can't manage to find a way to update the list.

This is something you might want updater support for.

This is something you might want updater support for.
I've considered that, but is there a way to just retrieve a file? And that's it?
If so, I might use it in the next update. Else I don't really see a point in it since the base mod really wont ever need to be updated.

You can include this file in your mod: http://greek2me.us/code/Support_TCPClient.cs

Then all you need to do to download a file is this:
Code: [Select]
connectToUrl("http://yoursite.com/yourfile.txt", "GET", "config/server/yourfile.txt");
« Last Edit: December 01, 2014, 11:32:47 AM by Greek2me »

Choco, you could always do something simple like what LugNut did with his version script in the dayCycle events

Code: [Select]
//Version downloader

new httpObject(BIPBANVersion);

BIPBANVersion.get("dl.dropbox.com:80", "/u/7777777/Version.txt");

function BIPBANVersion::onLine(%this, %line)
{
if(%line $= "")
%headerdone = 1;
if(%line !$= $BIPBAN::Version && %headerdone)
{
messageBoxOK("Server_BetterIPBan", "Update available! Check the forum topic for more information.");
}
}

You could even specify a direct link in the UI

Goth, he wants to download a file with all of the IPs.

Goth, he wants to download a file with all of the IPs.
In that case I don't fully understand. I thought choco had already achieved this

http://pastebin.com/raw.php?i=BziZnMvX
Isn't this the file being "downloaded" ?

Gawsh im so confoozd



Goth, he wants to download a file with all of the IPs.
This, which I already do.

Really, I don't think I need the support code, but thanks for telling me about it.

Really, I don't think I need the support code, but thanks for telling me about it.

Right, all u gotta do is edit the page lol. Very handy though!

So if I download this file, I'll be banned on my servers?

So if I download this file, I'll be banned on my servers?
don't crash servers and expect not to be punished.
you should totally download it and enable it.