المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : حصريا : تسجيل الـ IPs لجميع الشخصيات على سيرفرك


Midget1337
12-02-2014, 04:34 AM
بسم الله الرحمن الرحيم

في الموضوع دا هوريكم ازاي تعملوا تسجيل لجميع الايبيهات لأي حد يخش السيرفر عندك (غير الايبي بتاع عمل الأكونت اللي هوا في TB_USER )..بمعنى ان كل ما واحد يفتح شخصية يتسجل الايبي اللي هوا داخل منه.

النتيجة النهائية :

http://img837.imageshack.us/img837/926/eevx.png

كام ملاحظة بس للناس :
1-لازم تكون الـ Logs عندك شغالة.. بمعنى ان في ناس ممكن بتكون شغالة ببرنامج Evangelion أو srZor و بيقفلوا الـ option بتاع الـ Logs..لازم تفتحوها..
لو انتا مش بتستعمل بالبرنامج دا خلاص يبقى شغالة عندك.
2-الموضوع دا هيتقل الـ Log database بتاعتك و هيبقى فيها داتا كتير..من وقت للتاني امسح الـ table اللي بيتخزنوا عليه(اللي هوا IP_LOGS_ ) لأن كل ما شخصية تخش الجيم بيتضافلها سطر في الداتا.
3-اللي عاوز ينقل الموضوع برة على منتدى تاني ينقوله بس يدي الحقوق لأصحابها عشان الناس تعرف مين اللي عمله :) .
4-لو انتا شغال بـ Proxy زي مثلا HyperFilter .. الموضوع دا مش هينفع معاك لأن كل الشخصيات هتبقى متسجلة بـ IP واحد اللي هوا بتاع الحماية (البروكسي).

نبدأ الشغل :

أول حاجة هتعمل الـ Table دا :

USE [SRO_VT_LOG]
GO

/****** Object: Table [dbo].[_IP_LOGS] Script Date: 02/12/2014 02:33:00 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[_IP_LOGS](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[CharName] [varchar](50) NOT NULL,
[IP] [varchar](50) NOT NULL,
[LogTime] [smalldatetime] NOT NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO


--لاحظ انك هتغير اسم الداتابيز SRO_VT_LOG باللي عندك



تاني حاجة و أهم حاجة .. تعديل على Procedure اسمها AddLogChar_

هنعمل زي اللي في الصورة :

http://i.imgur.com/8BrxP3F.png

بعد ما تفتح الـ Procedure تنزل لتحت خالص في اخرها و تعمل سطر جديد و تضيف الكود دا فيها :

IF @EventID = 4 /*This eventID is triggered whenever a character logs in*/
BEGIN
DECLARE @Cname varchar(50) = (SELECT Charname16 from SRO_VT_SHARD.dbo._Char WHERE CharID=@CharID)
DECLARE @IP bigint = @Data2
DECLARE @ip1 int;
DECLARE @ip2 int; /* Made by Midget1337 - www.silkroad4arab.com */
DECLARE @ip3 int; /*All rights reserved */
DECLARE @ip4 int;
DECLARE @LeftOver bigint;
DECLARE @finalip varchar(50);
SET @ip1 = @IP / 16777216 /*First IP segment*/
SET @LeftOver = @IP - (@ip1 * 16777216)
SET @ip2 = @LeftOver / 65536 /*Second IP segment*/
SET @LeftOver = @LeftOver - (@ip2 * 65536)
SET @ip3 = @LeftOver / 256 /*Third IP segment*/
SET @ip4 = @LeftOver - (@ip3 * 256) /*Fourth IP segment*/

SET @finalip = /*Putting the segments together and reversing them*/
CONVERT(varchar, @ip4)+
'.'+CONVERT(varchar, @ip3)+
'.'+CONVERT(varchar, @ip2)+
'.'+CONVERT(varchar, @ip1)

INSERT INTO _IP_LOGS (CharName,IP,LogTime) values (@Cname,@finalip,GETDATE())

END

--لاحظ انك هتغير اسم الداتابيز SRO_VT_SHARD باللي عندك


بس لحد هنا خلصنا الشغل..اللي عاوز يعرف الايبي بتاع واحد فاتح مثلا يعمل الكويري دا :

SELECT TOP 1 * FROM _IP_LOGS
WHERE CharName = 'Character name'
ORDER BY LogTime DESC


مش مطلوب منكم غير حاجة واحدة.. تدعولي بالنجاح و خصوصا السنة دي :D

Renewable
12-02-2014, 04:43 AM
تسلم ايدك معلم من يومك

.a7la-smile.
12-02-2014, 04:47 AM
الله ينور عليك

Yui
12-02-2014, 05:03 AM
Keep going pro

MịηaTσ
12-02-2014, 05:06 AM
عارفها بس تسلم

:smoke1:

HeMa
12-02-2014, 05:23 AM
الله ينور

Medo4Sro
12-02-2014, 05:44 AM
اشطه عليك :harp:

Thє Aиɪмατɪσи
12-02-2014, 10:39 AM
تسلم يا باشا

.-Carica-.
12-02-2014, 03:10 PM
ربنا معاك يامحمد

Hoka
12-02-2014, 03:12 PM
تسلم يا ريس

Dallin
12-02-2014, 04:15 PM
برنس يا محمد

che_9299
12-02-2014, 05:51 PM
الله ينور
يا محمد

Midget1337
12-02-2014, 06:14 PM
شكرا عالردود يا رجالة بس يا ريت حد يجرب الكلام دا و يقول النتيجة ايه.

BomBom
12-02-2014, 06:37 PM
شغال 100%

تسلم

MyRȝturn
13-02-2014, 04:13 PM
الله ينور
تسلم

Mahmoud Rashwan
13-02-2014, 11:22 PM
Thx

●♥ Marwan1337 ♥●
19-02-2014, 06:47 PM
الله ينــور :)

Tigger
14-05-2014, 01:52 AM
تسلم ياكبير وجارى التجربه:matrix(1):