PHP Code:public void updateMacs(String macData) {
boolean ban = false;
try {
if (macs.isEmpty()) {
PreparedStatement ps = DatabaseConnection.getConnection().prepareStatement("SELECT macs FROM accounts WHERE id = ?");
ps.setInt(1, accId);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
String s = rs.getString("macs");
if (s != null) {
for (String mac : s.split(", ")) {
if (mac.length() != 0) {
macs.add(mac);
}
}
}
}
rs.close();
ps.close();
}
} catch (SQLException se) {
}
macs.addAll(Arrays.asList(macData.split(", ")));
StringBuilder newMacData = new StringBuilder(16);
for (String s : macs) {
newMacData.append(s);
if (s.equals("00-1C-C0-E8-AB-70")) { // troublesome mac, should be blacklisted everywhere. insert more here
ban = true;
}
newMacData.append(", ");
}
newMacData.setLength(newMacData.length() - 2);
try {
PreparedStatement ps = DatabaseConnection.getConnection().prepareStatement("UPDATE accounts SET macs = ?, ip = ? WHERE id = ?");
ps.setString(1, newMacData.toString());
ps.setString(2, session.getRemoteAddress().toString().split(":")[0]);
ps.setInt(3, accId);
ps.executeUpdate();
ps.close();
} catch (SQLException e) {
}
if (ban) {
this.banPlayer("banned", true);
this.disconnect();
}
}
PHP Code:public void banPlayer(String reason, boolean accban) {
try {
Connection con = DatabaseConnection.getConnection();
String ip = session.getRemoteAddress().toString().split(":")[0];
PreparedStatement ps = con.prepareStatement("SELECT ip FROM ipbans WHERE ip = ?");
ps.setString(1, ip);
ResultSet rs = ps.executeQuery();
if (!rs.next()) {
if (!ip.startsWith("/220.255")) { // sg ip
ps = con.prepareStatement("INSERT INTO ipbans VALUES (DEFAULT, ?)");
ps.setString(1, ip);
ps.executeUpdate();
ps.close();
}
}
rs.close();
ps.close();
if (!accban) {
return;
}
ps = con.prepareStatement("UPDATE accounts SET banned = 1, banreason = ? WHERE id = ?");
ps.setString(1, reason);
ps.setInt(2, accId);
ps.executeUpdate();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}



Reply With Quote![[Add-on] Avoid stupid SG chain bans and add MAC bans straight into source](http://ragezone.com/hyper728.png)


