الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الحصول على IP Address بمجرد الدخول لقاعدة البيانات

مغلق
بدأه mooom في 4 أبريل 2007 · 7 رد · 1,045 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هل من أمر أو دالة للحصول على رقم الايبي الخاص بالمستخدم اللي داخل منه عن طريق جهاز الزبون

كما نعلم ان الامر

system_user   --للحصول على اسم المتصل

فهل يا ترى يوجد مثيله للحصول على العنوان IP Adress

THANKS

#2

السلام عليكم ورحمة الله وبركاته :

المسألة ليست بمعقدة و ذلك بوجود دالة مثل الـ XP_CmdShell :

إليك مثال حول طلبك أخي الكريم :

Create Table #Temp(Info Nvarchar(4000))

Insert #Temp
	exec master..xp_cmdshell 'ipconfig'

Select Info From #Temp Where Info Like '%IP Address%'

Drop Table #Temp

أتمنى أن يفيدك ..

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#3

اذا كنت تريد هذا باستخدام اوامر T-sql فلا يوجد امر على ما اعتقد للحصول على رقم ال ip الخاص ب Host معين

و لكن هناك اجرائية مخزنة جميلة جدا اسمها xp_cmdshell تتيح لك تنفيذ تعليمات dos و تعيد لك النتائج

فقمت بعمل الاجرائية التالية لاسترجاع ال Ip address و لكن سوف يأخذ تنفيذها بعض الوقت و لكنها تعمل

--created by wael dalloul at 4/4/2007
create procedure GetIPForHost
@HostName varchar(50)
as
begin
-- first declare the shell command that get the ip
declare @command varchar(50)
set @command = 'ping ' + @HostName

-- Create Temp Table to hold the result.
CREATE TABLE #tmp
(f varchar(200))

INSERT INTO #tmp
EXEC master..xp_cmdshell @command
declare @t1 varchar(200)
SET @t1 = (SELECT top 1 f from #tmp order by f DESC)

IF @t1 = ('Request timed out.')
print 'no Ip for the specified host'

SELECT TOP 1 SUBSTRING(f, 12, (CHARINDEX(':',f, 12)-12)) FROM #tmp ORDER BY f DESC
-- Drop Temp Table
DROP TABLE #tmp
end

و لتنفيذ الاجرائية نكتب

declare @HostName varchar(50)
SELECT @HostName =  HOST_NAME()
exec GetIPForHost @HostName

في حال عدم وجود ال ip سوف تعيد لك no Ip for the specified host

و السلام عليكم

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#4

السلام عليكم ورحمة الله وبركاته :

فعلاً وائل ربما يكون من الأفضل استخدام الـ Ping و خاصة في حال أراد المستخدم أن يحصل

على IP Address لجهاز آخر على الشبكة غير سيرفر الـ SQL و بالتالي ستلزم مستخدمها على

معرفة الـ HOST_NAME للجهاز الهدف ..

بكل الأحوال الطريقة ستعتمد في النهاية على الدالة الجميلة XP_CMDShell ..

بالتوفيق ..

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#5

ِكرا لكم جميعا

لكن الكود عند تنفيذه ظهر لي الخطأ التالي

Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1
SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', see "Surface Area Configuration" in SQL Server Books Online. 

(0 row(s) affected)

للعلم انا داخل بال Admin User

تم تعديل هذه المشاركة بواسطة mooom في 5 أبريل 2007 في 08:44

#7

شكرا جزيلااااااااا بارك الله فيكم وجاري التجريب والاطلاع

#8

شكرا جزيلااااااا

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…