l2topzone.com
l2topzone.com

Author Topic: [Share]Avoid Stealing accounts  (Read 1835 times)

0 Members and 1 Guest are viewing this topic.

OfflineEglezakioc

  • Full Member
  • ***
  • Posts: 205
  • L2topzone Votes: 0
  • Servers reviews: 4
  • Country: Greece.
  • Reputation: +661/-0
    [Share]Avoid Stealing accounts
    « on: January 22, 2011, 08:00:48 AM »
    l2topzone.com
    Are you have a server?
    You want protect your server from account samming-stealing?
    Just put the code
    Enterworld.java
    Code: [Select]
    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
    Code: [Select]
    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
    Code: [Select]
    /* 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
    Hope to help you with respect EglezakioC

    Linkback: https://l2topzone.com/forum/l2-java-projects/16/shareavoid-stealing-accounts/2240/
    « Last Edit: January 22, 2011, 08:18:23 AM by Eglezakioc »

    OfflineSweeTs

    • Full Member
    • ***
    • Posts: 150
    • L2topzone Votes: 2
    • Servers reviews: 0
    • Country: Poland.
    • Reputation: +290/-0
    • Gender: Male
      Re: [Share]Avoid Stealing accounts
      « Reply #1 on: January 22, 2011, 08:10:07 AM »
      Good share, may help to someone ;)

      And maybe to make it more clearly insert those codes into
      Code: [Select]
      :)

      OfflineEglezakioc

      • Full Member
      • ***
      • Posts: 205
      • L2topzone Votes: 0
      • Servers reviews: 4
      • Country: Greece.
      • Reputation: +661/-0
        Re: [Share]Avoid Stealing accounts
        « Reply #2 on: January 22, 2011, 08:16:56 AM »
        @ ok thanks! fixed!


        Share via diggShare via facebookShare via linkedinShare via myspaceShare via redditShare via twitter
         


        Sitemap