Are you have a server?
You want protect your server from account samming-stealing?
Just put the code
Enterworld.java
Index: EnterWorld.java
import net.sf.l2j.gameserver.model.entity.Hero;
import net.sf.l2j.gameserver.model.entity.L2Event;
+import net.sf.l2j.gameserver.model.entity.ProtectionIP;
@@
RegionBBSManager.getInstance().changeCommunityBoard();
+/**
+* Custom stuff
+*/
+ProtectionIP.onEnterWorld(activeChar);
Login Controller.java
Index: LoginController.java
if (ok)
{
client.setAccessLevel(access);
client.setLastServer(lastServer);
+statement = con.prepareStatement("UPDATE accounts SET lastactive=?, lastIP=? WHERE login=?");
-statement = con.prepareStatement("UPDATE accounts SET lastactive=? WHERE login=?");
statement.setLong(1, System.currentTimeMillis());
+statement.setString(2, address.getHostAddress());
+statement.setString(3, user);
-statement.setString(2, user);
statement.execute();
statement.close();
}
Go to model/entity and make a .java file with name AccountProtector
/* This program is free software; you can redistribute it and/or modifyIndex: LoginController.java
if (ok)
{
client.setAccessLevel(access);
client.setLastServer(lastServer);
+statement = con.prepareStatement("UPDATE accounts SET lastactive=?, lastIP=? WHERE login=?");
-statement = con.prepareStatement("UPDATE accounts SET lastactive=? WHERE login=?");
statement.setLong(1, System.currentTimeMillis());
+statement.setString(2, address.getHostAddress());
+statement.setString(3, user);
-statement.setString(2, user);
statement.execute();
statement.close();
}
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package net.sf.l2j.gameserver.model.entity;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import net.sf.l2j.L2DatabaseFactory;
import net.sf.l2j.gameserver.clientpackets.Say2;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.serverpackets.CreatureSay;
/**
*
* @author xAddytzu
*/
public class ProtectionIP
{
public static void onEnterWorld(L2PcInstance player)
{
String last = "";
String curr = "";
try
{
last = LastIP(player);
curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress();
}
catch (Exception e)
{
}
if (!last.equals(curr))
player.sendPacket(new CreatureSay(1, Say2.PARTY, "SYSTEM", "Your last ip was: "+last+" and current: "+curr));
UpdateLastIP(player, player.getAccountName());
}
public static String LastIP(L2PcInstance player)
{
String lastIp = "";
java.sql.Connection con = null;
try
{
ResultSet rset;
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement("SELECT * FROM `accounts` WHERE login = ?");
statement.setString(1, player.getAccountName());
rset = statement.executeQuery();
while(rset.next())
{
lastIp = rset.getString("lastIP");
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
return lastIp;
}
public static void UpdateLastIP(L2PcInstance player ,String user)
{
String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress();
java.sql.Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement("UPDATE accounts SET lastIP=? WHERE login=?");
statement.setString(1, address);
statement.setString(2, user);
statement.execute();
statement.close();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
Creadits: xAddytzu
Linkback: https://l2topzone.com/forum/index.php?topic=2240.0