क्या SQL सर्वर 2005 में कोई क्वेरी है जिसका उपयोग मैं सर्वर का आईपी या नाम प्राप्त करने के लिए कर सकता हूं?एसक्यूएल - सर्वर का आईपी पता प्राप्त करने के लिए क्वेरी
उत्तर
select @@servername
यह @@SERVERNAME चर में है;
SELECT @@SERVERNAME;
आप प्राप्त कर सकते हैं [होस्ट नाम] \ [InstanceName] द्वारा:
SELECT @@SERVERNAME;
केवल होस्ट नाम प्राप्त करने के लिए आप होस्ट नाम \ उदाहरण के नाम प्रारूप है जब:
SELECT LEFT(ltrim(rtrim(@@ServerName)), Charindex('\', ltrim(rtrim(@@ServerName))) -1)
वैकल्पिक रूप से के रूप में @GilM ने बताया:
SELECT SERVERPROPERTY('MachineName')
create Procedure sp_get_ip_address (@ip varchar(40) out)
as
begin
Declare @ipLine varchar(200)
Declare @pos int
set nocount on
set @ip = NULL
Create table #temp (ipLine varchar(200))
Insert #temp exec master..xp_cmdshell 'ipconfig'
select @ipLine = ipLine
from #temp
where upper (ipLine) like '%IP ADDRESS%'
if (isnull (@ipLine,'***') != '***')
begin
set @pos = CharIndex (':',@ipLine,1);
set @ip = rtrim(ltrim(substring (@ipLine ,
@pos + 1 ,
len (@ipLine) - @pos)))
end
drop table #temp
set nocount off
end
go
declare @ip varchar(40)
exec sp_get_ip_address @ip out
print @ip
Source of the SQL script: 403,210 आप इस का उपयोग कर वास्तविक IP पते मिल सकता है।
\ InstanceName बिना मशीन नाम पाने के लिए एक आसान तरीका है:
SELECT SERVERPROPERTY('MachineName')
सर्वर एकाधिक आईपी पतों है कि उस पर सुन रहा है हो सकता है।
SELECT dec.local_net_address
FROM sys.dm_exec_connections AS dec
WHERE dec.session_id = @@SPID;
यह समाधान के माध्यम से ओएस के लिए बाहर शैल करने के लिए आप की आवश्यकता नहीं है: अपने कनेक्शन देखें सर्वर स्थिति सर्वर अनुमति यह करने के लिए दी गई है, तो आपको पता आप SQL सर्वर से कनेक्ट किया है प्राप्त करने के लिए इस क्वेरी चला सकते हैं xp_cmdshell, जो एक ऐसी तकनीक है जिसे उत्पादन सर्वर पर अक्षम किया जाना चाहिए (या कम से कम सख्ती से सुरक्षित)। आपको उचित लॉगिन के लिए दृश्य सर्वर राज्य प्रदान करने की आवश्यकता हो सकती है, लेकिन यह xp_cmdshell चलाने से बहुत कम सुरक्षा जोखिम है।
एक तकनीक सर्वर नाम के लिए GilM ने उल्लेख पसंद किया जाता है:
SELECT SERVERPROPERTY(N'MachineName');
SELECT
CONNECTIONPROPERTY('net_transport') AS net_transport,
CONNECTIONPROPERTY('protocol_type') AS protocol_type,
CONNECTIONPROPERTY('auth_scheme') AS auth_scheme,
CONNECTIONPROPERTY('local_net_address') AS local_net_address,
CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port,
CONNECTIONPROPERTY('client_net_address') AS client_net_address
कोड यहाँ आप आईपी पता देगा;
यह SQL 2008 और नए के लिए दूरस्थ क्लाइंट अनुरोध के लिए काम करेगा।
आप साझा किया है, तो मेमोरी कनेक्शन की अनुमति तो ऊपर सर्वर पर चल ही आप
- "साझा स्मृति" 'local_net_address' के लिए 'net_transport' के मान, और
- शून्य के रूप में दे देंगे, और
- '
<local machine>
' 'client_net_address' में दिखाया जाएगा।
'client_net_address' कंप्यूटर कि अनुरोध से उत्पन्न की पता है, जबकि 'local_net_address' होगा एसक्यूएल सर्वर (इस प्रकार साझा स्मृति कनेक्शन पर शून्य), और पता आप किसी को देना होगा है अगर वे कर सकते हैं कुछ कारणों से सर्वर के नेटबीओस नाम या एफक्यूडीएन का उपयोग नहीं करते हैं।
मैं this answer का उपयोग करने के खिलाफ दृढ़ता से सलाह देता हूं। शेल आउट को सक्षम करना उत्पादन SQL सर्वर पर एक बहुत बुरा विचार है।
सुनिश्चित करने के लिए उत्साहित है कि मुझे एक बंदरगाह के लिए एक नकारात्मक पोर्ट नंबर (-15736) मिल रहा है जो कि 49800 होना चाहिए। तो अगर नकारात्मक 65536 जोड़ना सुरक्षित है? – crokusek
अगर कोई मेरे कंप्यूटर के SQL सर्वर में दूरस्थ रूप से लॉगिन करना चाहता है, तो मैं उसे कौन सा आईपी देता हूं? local_net_address या client_net_address? –
यह 2012 पर काम नहीं कर रहा है - पता शून्य है – scar80
इन दोनों शिविरों में T-SQL गिरावट के माध्यम से आईपी पते प्राप्त करने के लिए सबसे समाधान:
भागो
ipconfig.exe
xp_cmdshell
के माध्यम से और पार्स उत्पादनक्वेरी DMV
sys.dm_exec_connections
मैं विकल्प # 1 का प्रशंसक नहीं हूं। Xp_cmdshell को सक्षम करने में सुरक्षा कमियां होती हैं, और वैसे भी बहुत सारे पार्सिंग शामिल होते हैं। यह बोझिल है। विकल्प # 2 सुरुचिपूर्ण है। और यह एक शुद्ध टी-एसक्यूएल समाधान है, जिसे मैं लगभग हमेशा पसंद करता हूं।
SELECT c.local_net_address
FROM sys.dm_exec_connections AS c
WHERE c.session_id = @@SPID;
SELECT TOP(1) c.local_net_address
FROM sys.dm_exec_connections AS c
WHERE c.local_net_address IS NOT NULL;
कभी कभी, ऊपर प्रश्नों के न काम करता है, हालांकि: यहाँ # 2 विकल्प के लिए दो नमूना क्वेरी दी गई हैं। क्वेरी # 1 वापस लौटाता है अगर आप साझा मेमोरी से जुड़े हुए हैं (SQL होस्ट पर लॉग इन और एसएसएमएस चला रहे हैं)। गैर-साझा मेमोरी प्रोटोकॉल का उपयोग कर कोई कनेक्शन नहीं होने पर क्वेरी # 2 कुछ भी वापस नहीं आ सकता है। यह परिदृश्य संभवतः एक नए स्थापित SQL इंस्टेंस से कनेक्ट होने पर है। समाधान? टीसीपी/आईपी पर कनेक्शन को मजबूर करें। ऐसा करने के लिए, एसएसएमएस में एक नया कनेक्शन बनाएं और सर्वर नाम के साथ "tcp:" उपसर्ग का उपयोग करें। फिर या तो क्वेरी फिर से चलाएं और आपको आईपी पता मिलेगा।
बहुत बढ़िया धन्यवाद! मेरे लिए पूरी तरह से काम किया। – Munk
यह आईपीवी 4 देगा .. क्या हम ipv6 प्राप्त कर सकते हैं? –
मैं जानता हूँ कि यह एक पुरानी पोस्ट है, लेकिन शायद इस समाधान जब आप एक साझा मेमोरी कनेक्शन (जैसे स्थानीय स्तर पर SSMS में चलने वाली स्क्रिप्ट से से आईपी पते और TCP पोर्ट प्राप्त करना चाहते हैं उपयोगी हो सकता है सर्वर)। कुंजी OPENROWSET का उपयोग कर अपने SQL सर्वर से द्वितीयक कनेक्शन खोलना है, जिसमें आप अपनी कनेक्शन स्ट्रिंग में 'tcp:' निर्दिष्ट करते हैं। शेष कोड केवल OPENROWSET की सीमाओं को अपने पैरामीटर के रूप में चर लेने में सक्षम नहीं होने के लिए गतिशील एसक्यूएल का निर्माण कर रहा है। इस स्क्रिप्ट यह मेरी जरूरतों के लिए काम करता --Try
exec xp_cmdshell 'ipconfig'
आप आदेश पंक्ति क्वेरी का उपयोग और mssql में निष्पादित कर सकते हैं। इसे पढ़ने के लिए सुधार। इस प्रतिक्रिया के लिए
SELECT
SERVERPROPERTY('ComputerNamePhysicalNetBios') as 'Is_Current_Owner'
,SERVERPROPERTY('MachineName') as 'MachineName'
,case when @@ServiceName =
Right (@@Servername,len(@@ServiceName)) then @@Servername
else @@servername +' \ ' + @@Servicename
end as '@@Servername \ Servicename',
CONNECTIONPROPERTY('net_transport') AS net_transport,
CONNECTIONPROPERTY('local_tcp_port') AS local_tcp_port,
dec.local_tcp_port,
CONNECTIONPROPERTY('local_net_address') AS local_net_address,
dec.local_net_address as 'dec.local_net_address'
FROM sys.dm_exec_connections AS dec
WHERE dec.session_id = @@SPID;
यह केवल तभी काम करेगा जब सर्वर सुरक्षा कॉन्फ़िगरेशन में 'xp_cmdshell' सक्षम है – D0dger
:
DECLARE @ip_address varchar(15)
DECLARE @tcp_port int
DECLARE @connectionstring nvarchar(max)
DECLARE @parm_definition nvarchar(max)
DECLARE @command nvarchar(max)
SET @connectionstring = N'Server=tcp:' + @@SERVERNAME + ';Trusted_Connection=yes;'
SET @parm_definition = N'@ip_address_OUT varchar(15) OUTPUT
, @tcp_port_OUT int OUTPUT';
SET @command = N'SELECT @ip_address_OUT = a.local_net_address,
@tcp_port_OUT = a.local_tcp_port
FROM OPENROWSET(''SQLNCLI''
, ''' + @connectionstring + '''
, ''SELECT local_net_address
, local_tcp_port
FROM sys.dm_exec_connections
WHERE session_id = @@spid
'') as a'
EXEC SP_executeSQL @command
, @parm_definition
, @ip_address_OUT = @ip_address OUTPUT
, @tcp_port_OUT = @tcp_port OUTPUT;
SELECT @ip_address, @tcp_port
- 1. क्वेरी स्थानीय आईपी पता
- 2. आईपी पता एपीएनएस सर्वर के लिए है?
- 3. सर्वर आईपी पता कैसे प्राप्त करें?
- 4. आईपी पता एसक्यूएल इंजेक्शन
- 5. एसक्यूएल सर्वर: एसक्यूएल क्वेरी
- 6. SQL सर्वर 2008 से क्लाइंट आईपी पता कैसे प्राप्त करें?
- 7. अपने एप्लिकेशन सर्वर का आईपी पता कैसे प्राप्त करें
- 8. ऐपेंगिन सर्वर का आईपी पता ब्लॉक?
- 9. एएसपी.नेट में सर्वर का आईपी पता प्राप्त करना?
- 10. एसक्यूएल क्वेरी के माध्यम से एसक्यूएल सर्वर स्कीमा प्राप्त करें?
- 11. एसक्यूएल सर्वर रिकर्सिव क्वेरी
- 12. आगंतुकों का आईपी पता प्राप्त करें
- 13. PHP डिस्प्ले सर्वर आईपी पता
- 14. स्थानीय आईपी पता प्राप्त करना
- 15. मेरा आईपी पता प्राप्त करना
- 16. मैं एएसपीनेट में सर्वर/वेबसाइट आईपी पता कैसे प्राप्त करूं?
- 17. आईपी पता कैसे प्राप्त करें?
- 18. एसक्यूएल सर्वर क्वेरी - DISTINCT
- 19. जेएसपी अनुरोध/सत्र ऑब्जेक्ट से सर्वर आईपी पता प्राप्त करें
- 20. रेल: क्लाइंट आईपी पता प्राप्त करें
- 21. एसक्यूएल सर्वर क्वेरी त्रुटि
- 22. मुझे मोबाइल फोन का सार्वजनिक आईपी पता कैसे प्राप्त होगा?
- 23. एसक्यूएल सर्वर क्वेरी परिणाम का आकार
- 24. ब्राउज़र में स्थानीय आईपी पता प्राप्त करने के गैर-सर्वर पक्ष विधि?
- 25. एसक्यूएल सर्वर 2005: एकल क्वेरी
- 26. एसक्यूएल सर्वर 2008 क्वेरी संपादक क्वेरी तर्क
- 27. एसक्यूएल क्वेरी mongodb करने के लिए?
- 28. उपयोगकर्ता आईपी पता ढूँढना
- 29. एक एकल एसक्यूएल क्वेरी जो एसक्यूएल सर्वर
- 30. एसक्यूएल-सर्वर, अगर SQL क्वेरी
धन्यवाद ... मेरा मानना है कि अगर आप ग्राहक के कनेक्शन की ओर से यह सत्यापित करने के लिए, विशेष रूप से अगर ग्राहक का कनेक्शन एक कनेक्शन स्ट्रिंग के साथ स्थापित किया गया था की जरूरत है इस सर्वर का IP पता निर्धारित करने का सही तरीका है कि एक डेटा स्रोत के रूप में एक एसक्यूएल उपनाम या नामित उदाहरण निहित है। –
सिर्फ xp_cmdshell को अवरुद्ध करने के लिए नहीं बल्कि सख्ती से सुरक्षित – SheldonH