আমার আইপি ঠিকানা কি?


24

আমি অবাক হয়েছি এটি এখনও কোন চ্যালেঞ্জের সামনে আসে নি।

আপনি যে মেশিনটি চালাচ্ছেন তার আইপি ঠিকানা আউটপুট করুন। আপনাকে স্থানীয় এবং বাহ্যিক উভয় আইপি ঠিকানা আউটপুট করতে হবে।

স্থানীয় আইপি ঠিকানা, যেমন 192.168.xx ডিফল্ট ফর্ম্যাট সহ

পাবলিক আইপি ঠিকানা গুগল https://www.google.co.uk/search?source=hp&q=whats+my+ip ব্যবহার করে যাচাই করা যেতে পারে

আউটপুট যে কোনও বিন্যাসে হতে পারে। আইপিভি 4 বা আইপিভি 6 বা এর যে কোনও মিশ্রণ অনুমোদিত, তবে তাদের অবশ্যই একমাত্র আউটপুট হতে হবে। কোড একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন হতে পারে।

বিধিগুলি তাই সংক্ষিপ্ততম কোড জয়ের প্রয়োগ করে।

স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।

সম্পাদনা: পিটার টেইলরের মন্তব্য অনুসারে, যেখানে উভয় ধরণের ঠিকানার একাধিক উপস্থিত রয়েছে, আপনি প্রথমে কোনওটিকে আউটপুট বেছে নিতে পারেন বা আপনি যতটা অ্যাক্সেস করতে পারবেন তা বেছে নিতে পারেন। যতক্ষণ না কমপক্ষে একজন স্থানীয় এবং একজন জনসাধারণ উপস্থিত থাকেন।


3
আমি মনে করি 0/1জিনিসটি চ্যালেঞ্জের মধ্যে অপ্রয়োজনীয় ফ্লাফ যুক্ত করেছে।
মিঃ এক্সকডার

5
এটি অপ্রকাশিত বিশেষত, একাধিক স্থানীয় আইপি ঠিকানা এবং / অথবা একাধিক সার্বজনীন আইপি অ্যাড্রেস রয়েছে এমন ক্ষেত্রে এটি স্পষ্টভাবে সম্বোধন করে না। তদুপরি, আমার একাধিক সার্বজনীন আইপি অ্যাড্রেস আছে কিনা তা জানার কোনও নির্ভরযোগ্য উপায় নেই, এবং যদি তা হয় তবে তা।
পিটার টেলর

5
হোস্টের কোনও আরএফসি 1918 ঠিকানা না থাকলে কী হবে? দেখে মনে হচ্ছে কমপক্ষে একটি ব্যক্তিগত নেটওয়ার্ক রয়েছে এমন মেশিন ব্যতীত এর কোনও নির্ভরযোগ্য উত্তর নেই।
টবি স্পিড 12 ই

4
... এবং এমনকি একটি নেটওয়ার্ক ইন্টারফেসে একাধিক আইপি ঠিকানা থাকতে পারে।
কাজ

14
প্রকৃতপক্ষে, আমি দেখতে পাচ্ছি না আপনি কীভাবে কোনও বাহ্যিক উত্স থেকে আনার ছাড়াই এর অর্ধেকটি সমাধান করতে পারেন, এটি একটি মানসম্মত লুফোল যা আপনি স্পষ্টভাবে নিষিদ্ধ করেছেন।
অক্টোপাস

উত্তর:


18

বাশ + কার্ল + আইপ্রউট 2 , 54 50 49 48 33 বাইট

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

@ ডমহাস্টিংসকে 1 বাইট বন্ধ করে দেওয়ার জন্য ধন্যবাদ!

সংক্ষিপ্ত ইউআরএল নিয়ে আসার জন্য @ সিসিফাসকে ধন্যবাদ!

9 বাইট বন্ধ করে গল্ফ করার জন্য @zeppelin ধন্যবাদ!


@ ডোমহাস্টিংস আপনার শেষ গল্ফের প্রচেষ্টাগুলি আইপি ঠিকানার সাথে কিছুটা আবর্জনা ফিরিয়ে আনবে, কমপক্ষে উবুন্টু 16.04.3 এলটিএসে
ফেরিবিগ

@ ফেরিবিগ হ্যাঁ, 1/0অংশটি এসটিডিআরআরকে একটি ত্রুটি তৈরি করে, তবে এটি ডিফল্টরূপে উপেক্ষা করা হয়, যদিও আপনি যদি আলাদা আলাদা আউটপুট পান ip routeতবে এটি আমার মেশিনে যে সংস্করণটি চলছিল তা হতে পারে। লজ্জা!
ডম হেস্টিংস

প্রথম লাইনটি 1000আমার জন্য প্রিন্ট করে ... ip route get 1আউটপুট: ptpb.pw/pixx
মাজোরা 320

যখন আমি সেই কোডটি চালনা করি আমি এই আউটপুটটি RTNETLINK answers: Network is unreachable
পাই

1
আপনি আপনার এডব্লিউকে প্রকাশটিও কিছুটা অনুকূল করতে পারেন:awk 'NR<2&&$0=$7'
জেপেলিন

9

বাশ 37 31 27 বাইটে

এটি ব্রুস ফোর্টের উত্তর দ্বারা অনুপ্রাণিত হয় । এই উত্তরটি কেবল আইপিভি 4 নিয়ে কাজ করে যার অর্থ এটি আমার পক্ষে কাজ করে না। আমি এটিকে এমন সংস্করণে আবারও লিখেছি যা (কেবল) আইপিভি 6 এর সাথে কাজ করে:

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

এটি পিপিপিওই-র মাধ্যমে সংযুক্ত উবুন্টু 14.04.5 এ পরীক্ষা করা হয়েছে এবং যেহেতু আইপিভি 6 কোনও NAT ছাড়াই ব্যবহার করার জন্য ডিজাইন করা হয়েছে এটি একই আইপি ঠিকানাটি দু'বার আউটপুট দেবে।

-6 ধন্যবাদ বাইট জেপেলীন্ , -2 ধন্যবাদ বাইট Ferrybig , -2 ধন্যবাদ বাইট Markasoftware


আমার উবুন্টু 16.04.3 এলটিএস-তে, কমান্ডটি কাজ করতে আমাকে পরিবর্তন '{print$11,$11}'করতে '{print$9,$9}'হয়েছিল, আপনার আদেশটি 1024 2 বার ফিরে এসেছে, আপনার কমান্ড আমার উবুন্টু 16.04.2 মেশিনে কাজ করে
ফেরিবিগ

@ ফেরিবিগ সম্ভবত নেটওয়ার্ক কনফিগারেশনের উপর সম্ভবত নির্ভর করে। আমি এটি এমন কোনও নেটওয়ার্কে পরীক্ষা করেছি যেখানে রাউটার বিজ্ঞাপনগুলি থেকে ঠিকানাগুলি স্বয়ংক্রিয়ভাবে কনফিগার করা থাকে।
ক্যাস্পার্ড

মেশিনগুলির জন্য যেখানে আইপি ঠিকানাটি ম্যানুয়ালি কনফিগার করা আছে (স্থিতিশীল), অংশটি ip routeআউটপুট দেয় না proto ra, আপনি
এটির

@ ফেরিবিগ এই মুহুর্তে আমি ভাবছি যে আকার না বাড়িয়ে উভয় ক্ষেত্রেই এটি কার্যকর করার উপায় খুঁজে পাচ্ছি কিনা। BTW। আমার 16.04.3 মেশিনে যা রাউটার বিজ্ঞাপনগুলি ব্যবহার করে এর কনফিগারেশনটি পেয়েছে তা বলে proto staticনা proto ra, যদিও এই কোডটির সাথে এই তফাতটি কোনও বিষয় নয়।
কাস্পার্ড

এটি কিছুটা গল্ফ করতে, awk '$0=$9" "$9'পরিবর্তে ব্যবহার করুন {print$11,$11}। অনেক সিস্টেমে (আমার আর্চ ওয়ান সহ) 9 তম শব্দটি ব্যবহার করা হয়, সুতরাং এটি 11 টির চেয়ে কম হয় এবং এই বাক্য
গঠনটি

7

গণিত, 17 বাইট

ম্যাথামেটিকার প্রতিটি কিছুর জন্য একটি বিল্টিন রয়েছে

$MachineAddresses

ডকুমেন্টেশনে বর্ণিত হিসাবে , এই বিল্টিন কমান্ডটি আপনার ডিভাইসের সাথে সম্পর্কিত সমস্ত আইপি ঠিকানা (স্থানীয় এবং বাহ্যিক উভয়) তালিকাভুক্ত করে।


ডকুমেন্টেশন বাহ্যিক ঠিকানা সম্পর্কে কিছুই বলে না।
ক্যাস্পারড

যদি এই কমান্ডটি ipv6 ঠিকানাটিও তালিকাভুক্ত করে, তবে আপনি বলতে পারেন ipv6 ঠিকানাটি প্রত্যাশিত ফলাফল
ফেরিবিগ

5
এটি আমার জন্য বেশ কয়েকটি আইপি ঠিকানার একটি তালিকা তৈরি করে তবে এগুলির কোনওটিই আমার বাহ্যিক ঠিকানা বলে মনে হয় না; যদিও আমি জিনিসগুলি সঠিকভাবে ব্যাখ্যা করছি না। আমি এই জাতীয় কিছু থেকে আমার বাহ্যিক আইপি ঠিকানা পেতে পারি WolframAlpha["ip address", {{"IPAddress:InternetData", 1}, "ComputableData"}][[1,2]]তবে কীভাবে আরও সরাসরি এটি পাবেন তা আমি জানি না।
মার্ক এস।

@চিহ্ন. এটা বিব্রতকর; কমান্ডটি চালানোর সময় আমি আমার বাহ্যিক আইপি ঠিকানাটি পাই (শেষ এন্ট্রিটি মনে হয়)। যদিও এই কমান্ডটি ওল্ফ্রাম স্যান্ডবক্সে কাজ করবে না। সম্ভবত এটি একটি বাগ; আপনি কোন ওএস এবং গণিত সংস্করণ ব্যবহার করছেন?
জংহওয়ান মিন

@ জংহওয়ানমিন ১১.১.১.০ স্টুডেন্ট এডিশন আমাকে 6 টি জিনিস দেয় যা আমি ধরে নিলাম আইপিভি are, তারপরে 192.168.0.104 এবং তিনটি ঠিকানা 169.254 দিয়ে শুরু হবে। তবে আমার বাহ্যিক ঠিকানা 69. দিয়ে শুরু হয়
মার্ক এস।

6

অটোআইটি, 56 53 বাইট

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

@IPAddress1 একটি ম্যাক্রো যা ফিরে আসে

প্রথম নেটওয়ার্ক অ্যাডাপ্টারের আইপি ঠিকানা

_GetIP() আয়

পাবলিক আইপি ঠিকানা


-3 বাইট @ mınxomaτ ধন্যবাদ


3
ঝরঝরে, একটি সহযোগী অটোআইটি (আইটি নয়) -আর। আপনি এই কোডের স্পেসগুলি মুছতে পারেন।
mınxomaτ

@ mınxomaτ সংশোধন করার জন্য ধন্যবাদ :)
ড্যানিয়েল

6

সি #, 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 বাইট সংরক্ষণ করা।
25 নিকট সংরক্ষিত @ নিককে ধন্যবাদ

সম্পূর্ণ / ফর্ম্যাট সংস্করণ:

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();
        }
    }
}

আপনি == এর চারপাশে সাদা জায়গা সরিয়ে দুটি বাইট সংরক্ষণ করতে পারবেন না?
মিস্টিকবাগাবন্ড

@ জিনোস অবশ্যই বুঝতে পারিনি যে আমি এটি সরিয়ে নেই।
TheLethalCoder

গল্ফযুক্ত সংস্করণটি সংকলন করে না এবং এটি একটি স্বতন্ত্র ফাংশন নয়। সকেট নেমস্পেসটি ব্যবহারের শর্টকাটের সাথে একটি স্বতন্ত্র ফাংশনটি মিশ্রিত করা ন্যায়সঙ্গত বলে মনে হয় না, তাই আমি একটি বিকল্প বাছাই এবং এটির সাথে চলার পরামর্শ দেব। তাই বলা হয়, কাস্ট করে কিছু বাইট সংরক্ষণ করতে পারবেন i.AddressFamilyকরার intপরিবর্তে ভোটদান 2থেকে AddressFamily, এবং আপনি প্রতিস্থাপন করতে পারেন Dns.GetHostName()খালি স্ট্রিং সঙ্গে।
নিক

@ নিক আমি চেষ্টা করব যখন আমি সুযোগ পাই এবং namespaceকৌশল # সি এর পক্ষে মোটামুটি সাধারণ। আপনি যদি মনে করেন এটির অনুমতি দেওয়া উচিত নয় তবে আপনি এটি সম্পর্কে মেটাতে পোস্ট করতে পারবেন তবে এই মুহুর্তে এটি ন্যায্য খেলা এবং সংক্ষিপ্তকরণগুলিতে একটি ঝরঝরে কৌশল using
TheLethalCoder

6

পাওয়ারশেল v4 +, 40 36 বাইট

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

(কেবলমাত্র সার্ভার ২০১২ আর ২ বা তার উপরে বা উইন্ডোজ .1.১ বা তার বেশি কাজ করে T টিআইওতে কাজ করে না))

যা টিনটিতে লেখা তাই করে। স্থানীয় নেটওয়ার্কের আইপি অ্যাড্রেসগুলি পেয়ে যায় এবং এর IPAড্রেস অংশটি নির্বাচন করে (উদাহরণস্বরূপ, সাবনেট মাস্ক, গেটওয়ে ইত্যাদি ফিল্টার আউট)।

দ্বিতীয় একটি হল Invoke-WebRequestথেকে http://eth0.meযা কেবল পায় Content উহার; অর্থাত্, কেবল সর্বজনীন আইপি ঠিকানা।


অবরুদ্ধ সংস্করণ:

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

একজন বেনামে ব্যবহারকারী মুছে ফেলার পরামর্শ দিয়েছেনGet-
স্টিফেন

পছন্দ করেছেন দুর্দান্ত কাজ করে।
অ্যাডমবর্কবার্ক

4

ইউনিক্স শেল + স্টিনক্লিয়েন্ট , 40 বাইট

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

স্টান প্রোটোকল ব্যবহার করে :

NAT (STUN) এর জন্য সেশন ট্র্যাভারসাল ইউটিলিটিস হ'ল একটি প্রোটোকল যা নেটওয়ার্ক অ্যাড্রেস ট্রান্সলেটর (এনএটি) ট্র্যাভারসাল মোকাবেলায় অন্যান্য প্রোটোকলগুলির হাতিয়ার হিসাবে কাজ করে। এটি কোনও এএনটি দ্বারা বরাদ্দকৃত আইপি ঠিকানা এবং পোর্ট নির্ধারণের জন্য একটি এন্ডপয়েন্ট দ্বারা ব্যবহার করা যেতে পারে

STUN সার্ভারের নামটি পাবলিক STUN সার্ভার তালিকা থেকে

আউটপুট বিন্যাসটি হ'ল:

 LOCAL IPV4 ADDRESS
 PUBLIC IPV4 ADDRESS

নোট করুন যে উভয় লাইনই একক স্থানের সাথে যুক্ত হবে তবে আমি বিশ্বাস করি এটি লিখিত হিসাবে আউটপুট নিয়মগুলিকে ভঙ্গ করে না।

নমুনা আউটপুট:

  192.168.1.100    
  209.85.233.147

4

কার্ল (ব্যাশ ওয়ান-লাইনার): 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

যান, কেবলমাত্র ম্যাকস, 10 বাইট

ম্যাকোসে এই কিলসুইচ ব্যবহার করা যেতে পারে, এটি বর্তমানের ব্যক্তিগত সক্রিয় আইপি এবং সর্বজনীন আইপি মুদ্রণ করতে পারে:

$ 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

এটি কোনও অন্তর্নির্মিত সরঞ্জাম নয় তবে যথাযথ আইপি সনাক্ত করার প্রক্রিয়াটি সহজ করার চেষ্টা করে।

আউটপুট যেমন কমান্ড ব্যবহার করে পেতে পারে:

$ route get 0.0.0.0

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

$ networksetup -listnetworkserviceorder

$ scutil --dns

পাবলিক আইপি:

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

2
নমস্কার! পিপিসিজিতে আপনাকে স্বাগতম! এই প্রশ্নটি কোড-গল্ফ ট্যাগ করা হয় । আপনি কি কোনও ভাষা এবং বাইট গণনা সহ গল্ফ কোড সরবরাহ করতে পারেন?
স্টিফেন

3

পাওয়ারশেল ভি 3 + (উইন্ডোজ 7+ এর বিকল্প উত্তর)

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

2
পিপিসিজিতে আপনাকে স্বাগতম!
স্টিফেন

1
-matchএকটি দম্পতি বাইট সংরক্ষণ করতে আপনি আশেপাশের স্পেসগুলি সরাতে পারেন ।
অ্যাডমবর্কবার্ক

3

বাশ + অওক + কার্ল, 43 বাইট

ম্যাক এবং লিনাক্সের জন্য কেবল অন্তর্নির্মিত সরঞ্জামগুলি ব্যবহার করে

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

1
* বাশ মানে
সুচি ডোগা


আমি বাশ বলতে প্রশ্নটি সম্পাদনা করেছি যেহেতু এটি আমার লিনাক্স ল্যাপটপে কেবল ম্যাকোস নয়
সুচি ডোগা

THX, যেহেতু বাশ প্রতি সেলে একটি শেল (tcsh, sh এবং অন্য কোনও শেলের উপর কাজ করা উচিত) থেকে আমি উন্নতি করেছি, আপনার ইফকনফিগ, অ্যাডক এবং কার্লও থাকা দরকার
অ্যালেক্স নিকিফোরোভ

1
এটি "ম্যাকস / লিনাক্স" নয়, এটি বাশ। ঠিক যেমন এটি চিহ্নিত করুন।
LyricLy

2

পাইথন 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? মজার বিষয় হল এটি আমার সিস্টেমে দুটি আইপি আউটপুট দেয় (উইন 7) তবে তাদের মধ্যে একটিও আমার আসল স্থানীয় আইপি ঠিকানা নয়। bআসলে ভার্চুয়াল অ্যাডাপ্টারের আইপি এবং আমার লোকাল এরিয়া সংযোগ নয়
অক্টোপাস

তাত্ক্ষণিকভাবে যদিও, এটি এখনও একটি স্থানীয় আইপি ঠিকানা । আমি এ বিষয়ে স্পষ্টতা জানতে প্রশ্নে একটি মন্তব্য রেখেছি left
অক্টোপাস

আপনি @Octopus মুদ্রণ চলেছেন ঠিক আছে, আপডেট
Teo

প্রস্তাবিত সম্পাদনায় @ ডেভিড এটির পরামর্শ দিয়েছেন: 113 বাইট ( এখানে পর্যালোচনা )
স্টিফেন

2

নোড.জেএস (জাভাস্ক্রিপ্ট) 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 বাইট সংরক্ষণ করা হয়েছে
  • সংরক্ষিত 19 @MiniGod ধন্যবাদ বাইট (ব্যবহৃত .get()পরিবর্তে .request()- .end();সরানো হয়েছে)।
  • @ জ্যাচারের জন্য 2 বাইট সংরক্ষণ করা হয়েছে (একটি তীর ফাংশনের একাকী প্যারামিটারের আশেপাশে প্রথম বন্ধনীগুলির প্রয়োজন নেই)।
  • @ বিরজোলাক্সউইউ ( 43 টি বাইট সংরক্ষণিতrequire এবং সংরক্ষিত এবং console.logএকক-বর্ণের ভেরিয়েবলগুলিতে, সরাসরি ইউআরএল পাস করেছে require('http').get, dataইভেন্ট থেকে সরাসরি আউটপুট লগ করেছে ) thanks

আপনি সংক্ষিপ্ত কোডের জন্য তীর ফাংশন ব্যবহার করতে পারবেন না?
অ্যান্ড্রু লি

@ অ্যান্ড্রুলি দুর্দান্ত পরামর্শ, ধন্যবাদ। :)

আপনি .get()পরিবর্তে ব্যবহার করতে পারেন .request()। তাহলে আপনারও দরকার নেই .end();
MiniGod

1
আপনার তীর ফাংশনের একাকী প্যারামিটারের আশেপাশে প্যারেন্সের দরকার নেই। ( (a)=>=> a=>), আইআইআরসি।
জাকারি

1
@ অ্যান্ড্রুলি হুম, সমস্যাটি হ'ল কোডটি আরইপিএল-এ চালিত হওয়ার পরে এটি অতিরিক্ত তথ্য (যেমন অনুরোধের তথ্য) প্রিন্ট করে, যা প্রশ্নে নিষিদ্ধ। আমি এই আউটপুটটি আড়াল করার জন্য অতিরিক্ত কোড যুক্ত করতে পারি, তবে এটি requireকলগুলি ছাড়ার ফলে বাইট হ্রাসের বিরোধিতা করতে পারে , তাই আমি এখনই ছেড়ে দেব। যাইহোক পরামর্শের জন্য ধন্যবাদ।

1

উইন্ডোজ ব্যাচ ফাইল , 116 বাইট

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

প্রথম লাইনটি চলমান ফলাফলের মাধ্যমে পুনরাবৃত্তি করে ipconfigএবং আপনার স্থানীয় আইপিভি 4 ঠিকানা পায়।

পাবলিক আইপি অংশের জন্য, আমাকে দুর্দান্ত অপারেশনের উত্তর থেকে কিছুটা চুরি করতে হয়েছিল কারণ আমি যতটা জানি, কেবল ব্যাচের স্ক্রিপ্টিং ব্যবহার করে মেশিনের পাবলিক আইপি পাওয়ার কোনও উপায় নেই।

@প্রম্পট ( C:\...\path>) এর প্রতিধ্বনি দমন করতে আমরা একটি চিহ্ন দিয়ে শুরু করি , তারপরে পাওয়ারশেল কমান্ডটি Invoke-WebRequest(তার উপদ্বারা সহ iwr) চালাও এবং এর contentঅংশটি বের করব ।

আমি ব্যাচটি ব্যবহার না করে (...).contentএবং পরিবর্তে কেবল কমান্ডটি চালাচ্ছি এবং সম্পূর্ণ আউটপুট থেকে আসল তথ্যটি বের করে নিয়ে পরীক্ষা করেছি। তবে এটি এই সমাধানের চেয়ে দীর্ঘতর প্রমাণিত, তাই আমি এটি রেখেছি।

উইন্ডোজ 10.0.15063 এ পরীক্ষিত।


1

আর, 142 , 140 , 137 বাইট

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

উইন 10 এবং আর (3.4.1) এ পরীক্ষিত।
সংক্ষিপ্ত URL এর জন্য @ ব্রুস-ফোর্টের জন্য ধন্যবাদ।

অবরুদ্ধ সংস্করণ:

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


@ বিএলটি চমৎকার সমাধান। আপনি, 3 বাইট সংরক্ষণ করতে পারবেন প্রতিস্থাপন a <- nchar(x)সঙ্গেa=nchar(x)
AndriusZ

@ আন্ড্রুইজজ ধন্যবাদ, তবে এটি সত্যই আপনার সমাধান - আমি এটিকে ডি-ম্যাগরিট করেছিলাম।
বিএলটি


1

বাশ + কার্ল, 24 বাইট

hostname -i;curl eth0.me

এটি কাজ করে না .. ম্যান পৃষ্ঠা থেকে: " এই বিকল্পটি সমস্ত নেটওয়ার্ক ইন্টারফেসে সমস্ত কনফিগার করা ঠিকানা গণনা করে [[...] আউটপুট ক্রম সম্পর্কে কোনও অনুমান করবেন না" "
ბიმო

না -আমি তুলনায় বিভিন্ন ব্যবহার করতে (মূলধন) -i (ছোট হাতের)। আপনি যে বিটটি উদ্ধৃত করেছেন তা -আই বিভাগের।
সম্ভবত

সত্য, এটি সম্পর্কে দুঃখিত। তবে এর চেয়েও খারাপ এটি " এই বিকল্পটি ব্যবহার করা এড়িয়ে চলুন " বলে, এটি
কোনওভাবেই

ঠিক আছে, অবশ্যই পোস্টের আগে আমি পুরো ডকুমেন্টেশন পড়িনি read অদ্ভুতভাবে যথেষ্ট মনে হচ্ছে এটি আমার কয়েকটি মেশিনে কাজ করে। তবে এই অসঙ্গতি এই সমাধানটিকে সর্বোত্তমভাবে বিশ্বাসযোগ্য করে তুলবে।
সম্ভবত

1

এমএস-এসকিউএল, 59 বাইট

SELECT TOP 1 local_net_address
FROM sys.dm_exec_connections

এসকিউএল ইনস্ট্যান্সের ক্লায়েন্ট-মুখী আইপি ঠিকানাটি কোয়েরি কার্যকর করছে।


0

ভিবিএ, 58 বাইট

ওহো, স্থানীয় ঠিকানা পরিচালনা করে না - ঠিক করা চলছে

দ্রষ্টব্য: রেফারেন্স ব্যবহার করে

Microsoft Internet Controls

অজ্ঞাতনামা VBE তাত্ক্ষণিক উইন্ডো ফাংশন যা কোনও ইনপুট নেয় না এবং ইন্টারনেট এক্সপ্লোরার উইন্ডোর মাধ্যমে ব্যবহারকারীর আইপি ঠিকানাটিকে আউটপুট দেয়

Set i=New InternetExplorer:i.Visible=1:i.Navigate"eth0.me"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.