ที่อยู่ IP ของฉันคืออะไร


24

ฉันประหลาดใจที่สิ่งนี้ยังไม่เกิดขึ้นในความท้าทาย

ส่งออกที่อยู่ IP ของเครื่องที่คุณกำลังทำงาน คุณจะต้องส่งออกทั้งที่อยู่ IP ในประเทศและภายนอก

ที่อยู่ IP ท้องถิ่นเช่นตามรูปแบบเริ่มต้นที่ 192.168.xx

ที่อยู่ IP สาธารณะสามารถยืนยันได้โดยใช้ google https://www.google.co.uk/search?source=hp&q=whats+my+ip

เอาต์พุตสามารถอยู่ในรูปแบบใดก็ได้ อนุญาตให้ใช้ IPv4 หรือ IPv6 หรือการผสมผสานใด ๆ ก็ได้ รหัสสามารถเป็นโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น

กฎของใช้เพื่อให้ได้รหัสที่สั้นที่สุด

ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม

แก้ไข: ตามความคิดเห็นของ @Peter Taylor ในกรณีที่มีที่อยู่หลายประเภททั้งสองอยู่คุณสามารถเลือกที่จะส่งออกที่อยู่แรกหรือมากเท่าที่คุณสามารถเข้าถึงได้ ตราบใดที่มีอย่างน้อยหนึ่งท้องถิ่นและสาธารณะหนึ่งแห่ง


3
ฉันคิดว่า0/1สิ่งที่เพิ่มเข้ามาในความท้าทายที่ไม่จำเป็น
Mr. Xcoder

5
สิ่งนี้ไม่ได้ระบุไว้ โดยเฉพาะอย่างยิ่งมันไม่ได้ระบุอย่างชัดเจนถึงกรณีที่มีที่อยู่ IP หลายแห่งในท้องถิ่นและ / หรือที่อยู่ IP สาธารณะหลายแห่ง นอกจากนี้ไม่มีวิธีที่เชื่อถือได้ในการบอกว่าฉันมีที่อยู่ IP สาธารณะหลายแห่งหรือไม่และหากเป็นเช่นนั้น
Peter Taylor

5
เกิดอะไรขึ้นถ้าโฮสต์ไม่มีที่อยู่ RFC 1918 ใด ๆ ดูเหมือนว่าจะไม่มีคำตอบที่เชื่อถือได้ยกเว้นในเครื่องที่มีเครือข่ายส่วนตัวอย่างน้อยหนึ่งเครือข่าย
Toby Speight

4
... และแม้แต่เครือข่ายอินเทอร์เฟซเดียวก็สามารถมีที่อยู่ IP ได้หลายรายการ
Kaz

14
ที่จริงแล้วฉันไม่เห็นว่าคุณจะแก้ปัญหาครึ่งนี้ได้อย่างไรโดยไม่ ดึงข้อมูลจากแหล่งภายนอกซึ่งเป็นช่องโหว่มาตรฐานที่คุณต้องห้ามอย่างชัดแจ้ง
Octopus

คำตอบ:


18

Bash + curl + iproute2 , 54 50 49 48 33 ไบต์

ip r g 1|awk '$0=$7'
curl eth0.me

ขอบคุณ @DomHastings สำหรับการเล่นกอล์ฟ 1 ไบต์!

ขอบคุณ @Sisyphus ที่มากับ URL ที่สั้นลง!

ขอบคุณ @zeppelin สำหรับการเล่นกอล์ฟ 9 ไบต์!


@DomHastings ความพยายามครั้งสุดท้ายของคุณในการส่งคืนขยะพร้อมกับที่อยู่ IP อย่างน้อยใน Ubuntu 16.04.3 LTS
Ferrybig

@Ferrybig ใช่1/0ส่วนส่งออกข้อผิดพลาดไปยัง STDERR แต่นั่นจะถูกละเว้นโดยค่าเริ่มต้นหากคุณได้รับผลลัพธ์ที่แตกต่างกันip routeแม้ว่านั่นอาจเป็นรุ่นที่ฉันใช้กับเครื่องของฉัน ความอัปยศ!
Dom Hastings

บรรทัดแรกพิมพ์1000สำหรับฉัน ... ip route get 1เอาต์พุต: ptpb.pw/pixx
Majora320

เมื่อฉันเรียกใช้รหัสนั้นฉันจะได้รับผลลัพธ์นี้:RTNETLINK answers: Network is unreachable
kasperd

1
นอกจากนี้คุณยังสามารถเพิ่มประสิทธิภาพการแสดงออก AWK ของคุณได้เล็กน้อย:awk 'NR<2&&$0=$7'
zeppelin

9

Bash 37 31 27 ไบต์

นี้เป็นแรงบันดาลใจคำตอบโดยบรูซฟอร์เต้ คำตอบนั้นใช้ได้กับ IPv4 เท่านั้นซึ่งหมายความว่ามันใช้ไม่ได้สำหรับฉัน ฉันเขียนมันใหม่เป็นเวอร์ชันที่ (เฉพาะ) ใช้งานได้กับ IPv6:

ip r g b::|awk '$0=$9" "$9'

สิ่งนี้ได้รับการทดสอบบน Ubuntu 14.04.5 ที่เชื่อมต่อผ่าน PPPoE และเนื่องจาก IPv6 ได้รับการออกแบบให้ใช้งานโดยไม่ใช้ NAT ใด ๆ จึงจะส่งออกที่อยู่ IP เดียวกันสองครั้ง

-6 ไบต์ขอบคุณที่เรือเหาะ , -2 ไบต์ขอบคุณที่Ferrybig -2 ไบต์ขอบคุณที่Markasoftware


บน Ubuntu 16.04.3 LTS ของฉันฉันต้องเปลี่ยน'{print$11,$11}'เพื่อ'{print$9,$9}'ให้คำสั่งทำงานได้รับคำสั่งของคุณคืน 1024 2 ครั้งคำสั่งของคุณทำงานบนเครื่อง Ubuntu 16.04.2 ของฉัน
Ferrybig

@Ferrybig อาจขึ้นอยู่กับการกำหนดค่าเครือข่ายแล้ว ฉันทดสอบสิ่งนี้ในเครือข่ายที่มีการกำหนดค่าที่อยู่โดยอัตโนมัติจากโฆษณาเราเตอร์
kasperd

สำหรับเครื่องที่มีการกำหนดค่าที่อยู่ IP ด้วยตนเอง (คงที่) ip routeไม่ได้ส่งออกชิ้นproto raส่วนคุณสามารถใช้สิ่งนี้เป็นคุณสมบัติในการตอบคำถามของคุณต่อไป
Ferrybig

@Ferrybig ในขณะนี้ฉันกำลังไตร่ตรองว่าฉันสามารถหาวิธีที่จะทำให้มันทำงานได้ทั้งสองกรณีโดยไม่มีขนาดที่เพิ่มขึ้น Btw บนเครื่อง 16.04.3 ของฉันที่ได้รับการกำหนดค่าโดยใช้โฆษณาเราเตอร์ที่มันบอกว่าproto staticไม่proto raถึงแม้ว่าความแตกต่างนั้นไม่สำคัญกับรหัสนี้
kasperd

การกอล์ฟมันบิตใช้แทนawk '$0=$9" "$9' {print$11,$11}ระบบจำนวนมาก (รวมถึง Arch หนึ่งของฉัน) ใช้คำที่ 9 ดังนั้นจึงสั้นกว่า 11 และการใช้ไวยากรณ์นี้มีขนาดเล็กกว่าพิมพ์ $ 9, $ 9
markasoftware

7

Mathematica ขนาด 17 ไบต์

Mathematica มี builtin สำหรับทุกสิ่ง

$MachineAddresses

ตามที่อธิบายไว้ในเอกสารประกอบคำสั่ง builtin นี้จะแสดงรายการที่อยู่ IP ทั้งหมด (ทั้งภายในและภายนอก) ที่เกี่ยวข้องกับอุปกรณ์ของคุณ


เอกสารไม่ได้พูดอะไรเกี่ยวกับที่อยู่ภายนอก
kasperd

หากคำสั่งนี้แสดงรายการที่อยู่ ipv6 คุณสามารถพูดได้ว่าที่อยู่ ipv6 นั้นเป็นผลลัพธ์ที่คาดหวัง
Ferrybig

5
สิ่งนี้สร้างรายการที่อยู่ IP หลายแห่งสำหรับฉัน แต่ดูเหมือนว่าจะไม่มีที่อยู่ภายนอกของฉัน แต่ฉันอาจตีความสิ่งต่าง ๆ ไม่ถูกต้องได้ ฉันสามารถรับที่อยู่ IP ภายนอกของฉันจากสิ่งที่คล้ายกันWolframAlpha["ip address", {{"IPAddress:InternetData", 1}, "ComputableData"}][[1,2]]แต่ฉันไม่รู้วิธีการรับโดยตรงนั้น
มาร์คเอส

@MarkS มันแปลกมาก ฉันได้รับที่อยู่ IP ภายนอกของฉันเมื่อฉันเรียกใช้คำสั่ง (รายการสุดท้ายดูเหมือนว่าจะเป็น) คำสั่งนี้จะไม่ทำงานกับ Wolfram Sandbox บางทีนี่อาจเป็นข้อผิดพลาด คุณใช้ OS และ Mathematica เวอร์ชั่นใดอยู่
JungHwan Min

@JungHwanMin 11.1.1.0 Student Edition ให้ 6 สิ่งที่ฉันคิดว่าเป็น IPv6 จากนั้น 192.168.0.104 และที่อยู่สามแห่งที่เริ่มต้นด้วย 169.254 แต่ที่อยู่ภายนอกของฉันเริ่มต้นด้วย 69
Mark S.

6

AutoIt, 56 53 ไบต์

#include<Inet.au3>
ConsoleWrite(@IPAddress1&_GetIP())

@IPAddress1 เป็นแมโครที่ส่งคืน

ที่อยู่ IP ของอะแดปเตอร์เครือข่ายแรก

_GetIP() ผลตอบแทน

ที่อยู่ IP สาธารณะ


-3 ไบต์ขอบคุณ @ mınxomaτ


3
เรียบร้อยเพื่อน AutoIt (ไม่ใช่ IT) - คุณสามารถลบช่องว่างในรหัสนี้
mınxomaτ

@ mınxomaτขอบคุณสำหรับการแก้ไข :)
แดเนียล

6

C #, 196 194 188 163 ไบต์

namespace System.Net.Sockets{using Linq;_=>Dns.GetHostEntry("").AddressList.First(i=>(int)i.AddressFamily==2)+" "+new WebClient().DownloadString("http://eth0.me")}

บันทึก 2 ไบต์ขอบคุณ @Xynos
บันทึก 25 ไบต์ด้วย @Nick

เวอร์ชั่นเต็ม / ฟอร์แมต:

namespace System.Net.Sockets
{
    using Linq;

    class P
    {
        static void Main()
        {
            Func<object, string> f = _ =>
                Dns.GetHostEntry(Dns.GetHostName())
                    .AddressList
                    .First(i => (int)i.AddressFamily == 2) + " " + new WebClient().DownloadString("http://eth0.me");

            Console.WriteLine(f(null));

            Console.ReadLine();
        }
    }
}

คุณไม่สามารถบันทึกสองไบต์โดยลบช่องว่างรอบ ๆ ==?
MysticVagabond

@ Xynos แน่นอนไม่ทราบว่าฉันไม่ได้ลบออก
TheLethalCoder

รุ่น golfed ไม่ได้รวบรวมและไม่ได้เป็นฟังก์ชั่นแบบสแตนด์อโลน ดูเหมือนไม่ยุติธรรมที่จะรวมฟังก์ชั่นแบบสแตนด์อโลนกับทางลัดของการใช้เนมสเปซ Sockets ดังนั้นฉันขอแนะนำให้เลือกหนึ่งตัวเลือกและใช้ร่วมกับมัน ที่กล่าวว่าคุณสามารถบันทึกไบต์โดยการชี้i.AddressFamilyไปที่intแทนที่จะชี้2ไปที่AddressFamilyและคุณสามารถแทนที่Dns.GetHostName()ด้วยสตริงว่าง
Nick

@Nick ฉันจะลองดูว่าเมื่อฉันมีโอกาสและnamespaceเคล็ดลับนั้นค่อนข้างธรรมดาสำหรับ C # หากคุณคิดว่ามันไม่ควรจะได้รับอนุญาตให้คุณสามารถโพสต์ในเมตาเกี่ยวกับเรื่องนี้ แต่ในขณะที่มันเป็นเกมที่ยุติธรรมและเคล็ดลับในการตัดทอนเรียบร้อยusings
TheLethalCoder

6

PowerShell v4 +, 40 36 ไบต์

NetIPAddress|% IPA*
iwr eth0.me|% C*

(ใช้งานได้บน Server 2012 R2 หรือสูงกว่าหรือ Windows 8.1 ขึ้นไปไม่ทำงานบน TIO)

ทำสิ่งที่พูดบนกระป๋องอย่างแน่นอน รับที่อยู่ IP ของเครือข่ายโลคัลและเลือกเฉพาะIPAส่วนที่อยู่นอก (เช่นกรอง subnet mask, เกตเวย์และอื่น ๆ )

ประการที่สองคือการที่Invoke-WebRequestจะhttp://eth0.meได้รับCสิ่งนั้นในนั้น เช่นที่อยู่ IP สาธารณะ


เวอร์ชันที่ไม่ถูกปรับแต่ง:

(Get-NetIPAddress).IPAddress
(Invoke-WebRequest eth0.me).content

ผู้ใช้ที่ไม่ระบุชื่อแนะนำให้ลบGet-
Stephen

@ ขั้นตอนแน่นอน ใช้งานได้ดี
AdmBorkBork

4

Unix Shell + stunclientขนาด 40 ไบต์

stunclient stun.vo.lu|cut -d: -f2|sed 1d

ใช้โปรโตคอล STUN :

ยูทิลิตี้การสำรวจเส้นทางเซสชันสำหรับ NAT (STUN) เป็นโปรโตคอลที่ทำหน้าที่เป็นเครื่องมือสำหรับโปรโตคอลอื่น ๆ ในการจัดการกับการสำรวจเส้นทางผ่านเครือข่ายที่อยู่ (NAT) สามารถใช้โดยจุดปลายเพื่อกำหนดที่อยู่ IP และพอร์ตที่จัดสรรให้โดย NAT

ชื่อเซิร์ฟเวอร์ STUN อยู่ห่างจากรายการเซิร์ฟเวอร์สาธารณะ STUN

รูปแบบผลลัพธ์คือ:

 LOCAL IPV4 ADDRESS
 PUBLIC IPV4 ADDRESS

โปรดทราบว่าทั้งสองบรรทัดจะถูกเยื้องด้วยช่องว่างเดียว แต่ฉันเชื่อว่านี่จะไม่ทำลายกฎเอาต์พุตตามที่เขียน

ตัวอย่างผลลัพธ์:

  192.168.1.100    
  209.85.233.147

4

curl (bash one-liner): 27 ไบต์

curl -w%{local_ip} eth0.me

ผลลัพธ์จะถูกพิมพ์stdoutและมีลักษณะเช่นนี้:

1.2.3.4
192.168.0.10
# no trailing newline, use "curl -w%{local_ip}\\n eth0.me" for it

curl ควรเป็นรุ่นอย่างน้อย 7.29.0 (ตั้งแต่ 6 กุมภาพันธ์ 2013)

คำตอบขึ้นอยู่กับ/codegolf//a/139538/66016


4

ไป, MacOS เท่านั้น, 10 ไบต์

ใน macOS นี้ สามารถใช้killswitchได้ซึ่งสามารถพิมพ์ IP ส่วนตัวที่ใช้งานปัจจุบันและ IP สาธารณะได้:

$ killswitch 
Interface  MAC address         IP
en1        bc:34:36:d2:81:ba   192.168.2.10

Public IP address: 179.43.176.99

No VPN interface found, verify VPN is connected

นี่ไม่ใช่เครื่องมือในตัว แต่พยายามลดความซับซ้อนของกระบวนการค้นหา IP ที่เหมาะสม

ผลลัพธ์ที่ได้รับโดยใช้คำสั่งเช่น:

$ route get 0.0.0.0

$ ifconfig | pcregrep -M -o '^[^\t:]+:([^\n]|\n\t)*status: active'

$ networksetup -listnetworkserviceorder

$ scutil --dns

IP สาธารณะ:

$ dig o-o.myaddr.l.google.com @ns.google.com txt +short

2
Hi! ยินดีต้อนรับสู่ PPCG! คำถามนี้เป็นคำถามที่ติดแท็กรหัสกอล์ฟ คุณสามารถให้รหัสภาษากอล์ฟกับจำนวนไบต์ได้หรือไม่?
สตีเฟ่น

3

PowerShell v3 + (คำตอบอื่นสำหรับ windows 7+)

((ipconfig) -match "v4").split(":")[1]
Invoke-RestMethod eth0.me

2
ยินดีต้อนรับสู่ PPCG!
สตีเฟ่น

1
คุณสามารถลบช่องว่างโดยรอบ-matchเพื่อบันทึกสองสามไบต์
AdmBorkBork

3

Bash + Awk + Curl, 43 ไบต์

ใช้เครื่องมือในตัวสำหรับ Mac และ Linux เท่านั้น

ifconfig|awk '/bro/{print $2}';curl eth0.me

1
* ทุบตีคุณหมายถึง
Suici Doga

bash + awk + curl
Alex Nikiforov

ฉันแก้ไขคำถามที่จะบอกว่าทุบตีเพราะมันทำงานบนแล็ปท็อป linux ของฉันไม่ใช่แค่มาโคร
Suici Doga

ขอบคุณฉันดีขึ้นเนื่องจากทุบตีเป็นเชลล์ต่อ se (ควรทำงานกับ tcsh, sh และเชลล์อื่น ๆ ) คุณต้องมี ifconfig, awk และ curl ด้วย
อเล็กซ์ Nikiforov

1
นี่ไม่ใช่ "MacOS / Linux" แต่เป็น Bash เพียงทำเครื่องหมายเช่นนี้
LyricLy

2

Python 3, 124 133 ไบต์

from urllib2 import urlopen
import socket
a=urlopen('http://eth0.me').read()
b=socket.gethostbyname(socket.gethostname())
print a,b

คุณไม่ต้องการprint a,bเหรอ? น่าสนใจว่านี่จะส่งออกสอง IP ในระบบของฉัน (Win7) แต่ไม่มีหนึ่งในนั้นคือที่อยู่ IP ท้องถิ่นที่แท้จริงของฉัน bจริง ๆ แล้วเป็น IP ของอะแดปเตอร์เสมือนจริงไม่ใช่การเชื่อมต่อเครือข่ายท้องถิ่นของฉัน
Octopus

เบบี้ แต่ที่ยังคงมีอยู่ในท้องถิ่น ฉันแสดงความคิดเห็นในคำถามเพื่อขอคำชี้แจงเกี่ยวกับเรื่องนั้น
Octopus

@ Octopus คุณถูกต้องเกี่ยวกับการพิมพ์อัปเดต
Teo

ในการแก้ไขที่แนะนำ @David แนะนำสิ่งนี้: 113 ไบต์ ( ตรวจสอบที่นี่ )
Stephen

2

Node.js (JavaScript) 224 223 194 175 173 130 ไบต์

r=require,l=console.log,r('dns').lookup(r('os').hostname(),(a,b)=>l(b));r('http').get('http://eth0.me',a=>a.on('data',c=>l(c+"")))

เวอร์ชันที่ไม่ถูกปรับแต่ง:

require('dns').lookup(require('os').hostname(), (err, loc, fam) => console.log(loc));
require('http').get('http://eth0.me', res => {
    res.on('data', chunk => console.log(chunk + ""));
});

  • บันทึก 1 ไบต์ (เนื่องจากเซมิโคลอนไม่จำเป็น)
  • บันทึก 29 ไบต์ด้วย @AndrewLi (ใช้ฟังก์ชั่นลูกศรสำหรับรหัสที่สั้นกว่า)
  • บันทึกแล้ว 19 ไบต์ขอบคุณ @MiniGod (ใช้.get()แทน.request()- .end();ลบออก)
  • บันทึก 2 ไบต์ด้วย @ Zacharý (ไม่จำเป็นต้องใส่วงเล็บในพารามิเตอร์เดียวของฟังก์ชันลูกศร)
  • 43 ไบต์ที่บันทึกไว้ต้องขอบคุณ @Birjolaxew (เก็บไว้requireและconsole.logในตัวแปรตัวอักษรตัวเดียว, ส่งผ่าน url โดยตรงไปยังrequire('http').get, บันทึกผลลัพธ์โดยตรงจากdataเหตุการณ์)

คุณไม่สามารถใช้ฟังก์ชั่นลูกศรสำหรับรหัสที่สั้นกว่าได้หรือไม่?
แอนดรูลี่ลี่

@AndrewLi คำแนะนำที่ดีขอบคุณ :)

คุณสามารถใช้แทน.get() แล้วคุณยังไม่จำเป็นต้องใช้.request() .end();
MiniGod

1
คุณไม่จำเป็นต้อง parens รอบพารามิเตอร์ lone ของฟังก์ชันลูกศร ( (a)=>=> a=>) IIRC
Zacharý

1
@AndrewLi อืมปัญหาคือว่าเมื่อมีการเรียกใช้รหัสใน REPL มันจะพิมพ์ข้อมูลเพิ่มเติม (เช่นข้อมูลคำขอ) ซึ่งเป็นสิ่งต้องห้ามในคำถาม ฉันสามารถเพิ่มรหัสพิเศษเพื่อซ่อนผลลัพธ์นี้ แต่มันอาจต่อต้านการลดลงของไบต์ซึ่งเป็นผลมาจากการrequireโทรออกดังนั้นฉันจะทิ้งไว้ตอนนี้ ขอบคุณสำหรับคำแนะนำต่อไป

1

ไฟล์แบตช์ของ Windowsขนาด 116 ไบต์

@for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "v4"')do @echo%%b
@powershell -Command "(iwr eth0.me).content"

บรรทัดแรกวนซ้ำผ่านผลลัพธ์ของการรัน ipconfigและรับที่อยู่ IPv4 ในเครื่องของคุณ

สำหรับส่วน IP สาธารณะฉันต้องขโมยคำตอบ Powershell ที่น่าอัศจรรย์เพราะเท่าที่ฉันรู้ไม่มีวิธีรับ IP สาธารณะของเครื่องโดยใช้สคริปต์แบบแบทช์เพียงอย่างเดียว

เราเริ่มต้นด้วย@เครื่องหมายเพื่อระงับการสะท้อนพร้อมท์ ( C:\...\path>) จากนั้นเรียกใช้คำสั่ง Powershell Invoke-WebRequest(พร้อมนามแฝงiwr) และแยกcontentส่วนของที่

ฉันทดลองโดยไม่ใช้(...).contentแต่เพียงเรียกใช้คำสั่งและแยกข้อมูลจริงจากเอาต์พุตที่สมบูรณ์โดยใช้แบตช์ แต่นั่นพิสูจน์แล้วว่าเป็นวิธีที่ยาวกว่าทางออกนี้

ทดสอบบน Windows 10.0.15063


1

R, 142 , 140 , 137 ไบต์

library(magrittr);system("ipconfig",int=T)%>%regmatches(.,regexpr("v4.+",.))%>%{a=nchar(.);substr(.,a-14,a)};readLines("http://eth0.me")

ทดสอบกับ win10 และ R (3.4.1)
ขอบคุณสำหรับ @ Bruce-Forte สำหรับ URL แบบสั้น

เวอร์ชันที่ไม่ถูกปรับแต่ง:

library(magrittr)
system("ipconfig",int=T) %>% 
     regmatches(.,regexpr("v4.+",.)) %>% 
      {a <- nchar(.)
       substr(., a - 14, a)}
readLines("http://eth0.me")

ลงไปที่ 120 ไบต์ลองออนไลน์!
BLT

@BLT ทางออกที่ดี คุณสามารถบันทึกได้ 3 ไบต์โดยแทนที่a <- nchar(x)ด้วยa=nchar(x)
AndriusZ

@ AndruisZ ขอบคุณ แต่มันเป็นวิธีการแก้ปัญหาของคุณ - ฉันเพิ่งยกเลิกการ magrittr
BLT


1

Bash + Curl, 24 ไบต์

hostname -i;curl eth0.me

สิ่งนี้ใช้ไม่ได้ .. จากหน้า man: " ตัวเลือกนี้จะระบุที่อยู่ที่กำหนดค่าทั้งหมดในอินเทอร์เฟซเครือข่ายทั้งหมด [... ] อย่าตั้งสมมติฐานใด ๆ เกี่ยวกับลำดับของผลลัพธ์"
ბიმო

ไม่-I (ตัวพิมพ์ใหญ่) มีการใช้งานที่แตกต่างจาก-i (ตัวพิมพ์เล็ก) บิตที่คุณยกมานั้นมาจากส่วน-I
อาจ

จริงขอโทษด้วย แต่ถึงแม้จะเลวร้ายยิ่งมันว่า " หลีกเลี่ยงการใช้ตัวเลือกนี้ " ทางใดทางหนึ่งนี้ไม่ได้ทำงาน (อย่างน้อยในเครื่องของฉัน) ..
ბიმო

ใช่เป็นที่ยอมรับว่าฉันไม่ได้อ่านเอกสารฉบับเต็มก่อนโพสต์ ดูเหมือนว่าจะทำงานผิดปกติในเครื่องของฉัน แต่ความไม่ลงรอยกันนี้จะทำให้ทางออกนี้ไม่น่าเชื่อถือที่สุด
อาจ

1

MS-SQL, 59 ไบต์

SELECT TOP 1 local_net_address
FROM sys.dm_exec_connections

ส่งคืนที่อยู่ IP ของไคลเอ็นต์ของอินสแตนซ์ SQL ที่ดำเนินการค้นหา


0

VBA, 58 ไบต์

อ๊ะไม่จัดการกับที่อยู่ในพื้นที่ - กำลังแก้ไข

หมายเหตุ: ใช้การอ้างอิงถึง

Microsoft Internet Controls

ฟังก์ชั่นหน้าต่างแบบไม่ระบุตัวตน VBE ทันทีที่ไม่ต้องป้อนข้อมูลและส่งออกที่อยู่ IP ของผู้ใช้ผ่านหน้าต่าง Internet Explorer

Set i=New InternetExplorer:i.Visible=1:i.Navigate"eth0.me"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.