عرض مشاركة واحدة
قديم 01-01-2007, 21:25   رقم المشاركة : 1 (permalink)
معلومات العضو
wad_altayeb
عضو مشارك
 
إحصائية العضو









wad_altayeb غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 10
wad_altayeb is on a distinguished road

 

 

كل الطرق لمعرفة الـHost Name والـIP address, لا تنسونا من صالح دعاءكم

الطريقة الأولى : بإستخدام الباكج UTL_INADDR

باستخدام الفانكشن GET_HOST_ADDRESS يرجع الIP للHost Name وكما في المثال الأتي:

CODE

SELECT UTL_INADDR.get_host_address('omarcom') FROM dual;

UTL_INADDR.GET_HOST_ADDRESS('BART')
--------------------------------------------------------------------------------
172.16.1.201


هذه الجملة رجعت ال 172.16.1.201 لل omarcom

وإذا تم حذف الHost Name من جملة الSelect فإن الIP الذي يرجع هو الخاص بالسيرفر وكما في المثال الاتي :

CODE

SELECT UTL_INADDR.get_host_address from dual;

GET_HOST_ADDRESS
--------------------------------------------------------------------------------
172.16.1.100



واذا تم وضع Host Name خاطئ أو غير موجود فإنه يخرج المسج الاتية Host Unkown وكا في المثال الاتي

CODE

SELECT UTL_INADDR.get_host_address('omar') from dual;
SELECT UTL_INADDR.get_host_address('omar') from dual
*
ERROR at line 1:
ORA-29257: host omar unknown
ORA-06512: at "SYS.UTL_INADDR", line 19
ORA-06512: at "SYS.UTL_INADDR", line 40
ORA-06512: at line 1



وعلى عكس الفانكشن GET_HOST_ADDRESS فإن الفانكشنGET_HOST_NAME ترجع الHost Name للIP المحدد وكما في المثال الأتي :

CODE

SELECT UTL_INADDR.get_host_name('172.16.1.201') FROM dual;

UTL_INADDR.get_host_name('172.16.1.201')
--------------------------------------------------------------------------------
omarcom



وبالمثل اذا لم يتم وضع الIP في حملة الselect فإن الجملة ترجع الHost Name التابع للسيرفر وكما في المثال الاتي :

CODE

SELECT UTL_INADDR.get_host_name FROM dual;

GET_HOST_NAME
--------------------------------------------------------------------------------
omarcom


وبالمثل أيضاً اذا تم وضع IP خاطئ او غير موجود فإنه يخرج مسج Host Unkown وما في المثال الاتي

CODE

SELECT UTL_INADDR.get_host_name('1.1.1.1') FROM dual;
SELECT UTL_INADDR.get_host_name('1.1.1.1') FROM dual
*
ERROR at line 1:
ORA-29257: host 1.1.1.1 unknown
ORA-06512: at "SYS.UTL_INADDR", line 4
ORA-06512: at "SYS.UTL_INADDR", line 35
ORA-06512: at line 1



************************************************** ******************

الطريقة الثانية : باستخدام الفانكشن SYS_CONTEXT
واليك المثال الاتي ليتضح عمل هذه الفنكشن لإرجاع الIP الHost Name :

CODE

SELECT SYS_CONTEXT('USERENV','HOST') FROM dual;

SYS_CONTEXT('USERENV','HOST')
--------------------------------------------------------------------
omarcom

SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') FROM dual;

SYS_CONTEXT('USERENV','IP_ADDRESS')
--------------------------------------------------------------------
192.168.2.3

SELECT SYS_CONTEXT('USERENV','SERVER_HOST') FROM dual;

SYS_CONTEXT('USERENV','SERVER_HOST')
--------------------------------------------------------------------
omarreyati


المثال الأول : يرجع الHost Name لجهازClient
المثال الثاني : يرجع الIP لجهاز Client
المثال الثالث : يرجه الHost Name الخاص بالسيرفر

************************************************** *******************

الطريقة الثالثة : باستخدام V$INSTANCE
هذه الView تحتوي على الكثير من الColumn ومن ضمنها HOST_NAME واليك المثال الاتي لاسترجاع الHost Name :

CODE

SELECT host_name FROM v$instance;

HOST_NAME
------------------------------------------------
omarcom



************************************************** *********************

الطريقة الرابعة : باستخدام V$SESSION
واليك المثال الاتي :

CODE

SELECT terminal, machine FROM v$session WHERE username = 'omar';

TERMINAL MACHINE
------------------------------ ----------------------------------------------------
MARGE ORACLE-BASE\MARGE



************************************************** ***********************

هذه ما لدي من طرق لمعرفة الIP والHost Name سواءً للClient والServer
فإن أخطأت فمني ومن الشيطان وإن أصابت فمن الله تعالى

ولا تنسونا من صالح دعاءكم
وشكراً
wad_altayeb
wad_altayeb غير متواجد حالياً   رد مع اقتباس