কমান্ড লাইন থেকে আমি কীভাবে আমার আইপি ঠিকানাটি সন্ধান করব?


159

আমি জানি আপনি এটি করতে পারেন ifconfig | grep inetতবে এটি আপনাকে বেশ কয়েকটি আইপিভি 4 ঠিকানা দেখায় shows আমি কীভাবে এসএসএইচিং এট-এর জন্য একটি নির্দিষ্ট পেতে পারি?


কি আপনি খুঁজছেন আপনার Mac IP ঠিকানা নয় বরং প্রকাশ্য আইপি আপনার ISP আপনার রাউটার ইন্টারনেট ইন্টারফেসে আরোপিত ঠিকানা।
ড্যান

উত্তর:


168

ipconfig getifaddr en1ওয়্যারলেস বা ipconfig getifaddr en0ইথারনেটের জন্য ব্যবহার করুন ।

আপডেট :

ipconfig getifaddr en0 ওয়াইফাই ইন্টারফেসের জন্য ডিফল্ট।


7
এটি আমার অভ্যন্তরীণ (আমার রাউটারের) আইপি ঠিকানা (উদাহরণস্বরূপ 192.168.1.xxx) দেখায়, বাহ্যিক আইপি ঠিকানা নয়। (নীচের অন্যান্য উত্তরগুলির বেশিরভাগ হিসাবে করুন))
শ্রীভাতসার

2
আমার পক্ষে কাজ করেনি :(
নাভিদ আব্বাস

2
ifconfigইন্টারফেস এবং তাদের আইপিগুলির সমস্ত দেখায়
অরালার

4
প্রতিধ্বনি বাহ্যিক আইপি:curl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'

30
এটি বছরের পর বছর ধরে পরিবর্তিত হয়েছে, 'আইপোনফিগ জেটিফ্যাড্ডার এন0' ওয়াইফাই ইন্টারফেসের জন্য ডিফল্ট
মেরেক স্যাজমালক

98

নিম্নলিখিতটি আমার জন্য 10.8 এবং 10.10 ইয়োসেমাইটে কাজ করে।

ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}' 

যদি উপরেরটি আপনাকে একাধিক উত্তর দেয় তবে নিম্নলিখিতটি কোনও স্ক্রিপ্টে সংরক্ষণ করুন এবং পরিবর্তে এটি চালান

ip_address.sh

#!/usr/bin/env bash

dumpIpForInterface()
{
  IT=$(ifconfig "$1") 
  if [[ "$IT" != *"status: active"* ]]; then
    return
  fi
  if [[ "$IT" != *" broadcast "* ]]; then
    return
  fi
  echo "$IT" | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}'
}

main()
{
  # snagged from here: https://superuser.com/a/627581/38941
  DEFAULT_ROUTE=$(route -n get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}')
  if [ -n "$DEFAULT_ROUTE" ]; then
    dumpIpForInterface "$DEFAULT_ROUTE"
  else
    for i in $(ifconfig -s | awk '{print $1}' | awk '{if(NR>1)print}')
    do 
      if [[ $i != *"vboxnet"* ]]; then
        dumpIpForInterface "$i"
      fi
    done
  fi
}

main

3
আমার মতে গ্রহণযোগ্য উত্তর হওয়া উচিত কারণ এটির জন্য কোনও ওয়্যার্ড বনাম ওয়্যারলেস স্পেসিফিকেশন প্রয়োজন হয় না।
এরিক নামিচ

@ এরিকনমিচ বাদে আমাকে এই উত্তরটি দিয়ে 2
জ্যাচ লিসোবে

আহ, আমি তখন প্রত্যাহার করি। @ জাচলাইসোবি
এরিক নামিচ

এটি সর্বোত্তম সামগ্রিক পন্থা তবে সঠিক উত্তর পাওয়ার জন্য কখনও কখনও আঁতকে উঠার আগে কিছুটা আরও গ্রেপিং করা দরকার এবং সঠিক উত্তরটি ভিন্ন হতে পারে।
uchuugaka

আমি এমন একটি স্ক্রিপ্ট যুক্ত করেছি যাতে আশা করা যায় এই সমস্যাটি সমাধান করা উচিত .. fyi!
ব্র্যাড পার্কগুলি 12

43

curl ifconfig.meটার্মিনালটিতে কেবল টাইপ করুন।


1
ডাউনভোট কেন? এটি বাইরের আইপি হলেও, কমান্ডটি বৈধ এবং আমার ssh লগইনের জন্য কাজ করে।
কাজিনকোচেন

5
এটি সর্বজনীন আইপি ঠিকানা এবং আমি যা খুঁজছিলাম। ipconfig getifaddr en0স্থানীয় আইপি জন্য।
এগ্রিগস

হাইসিয়ারে আমাকে এসইউডিও হিসাবে চালাতে হয়েছিল। এছাড়াও এটি বাহ্যিক আইপি ঠিকানা তালিকাভুক্ত করে। অভ্যন্তরীণ আইপি ঠিকানার জন্য ব্র্যাড পার্কগুলি থেকে উত্তর দেখুন
ভিনসেন্ট

19

আমি ঘন ঘন আইপি দেখার জন্য একটি .aliases ডটফাইলে এটি সেট আপ করেছি:

alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias localip="ipconfig getifaddr en0"

17

আপনি নিম্নলিখিতটি করতে পারেন:

টাইপ ifconfigবা ifconfig -a। এই কমান্ডটি আপনাকে তাদের আইপি এবং ম্যাক অ্যাড্রেসগুলির সাথে ইন্টারফেসের তালিকা প্রদর্শন করে (কেবল প্রযোজ্য ক্ষেত্রে কেবল পরে)। আপনি কেবল টাইপ করতে পারেন ifconfig en0বা ifconfig en1কোনও নির্দিষ্ট ইন্টারফেসের কনফিগারেশনের জন্য (যেমন কেউ তাদের উত্তরে বলেছে, এন0 সাধারণত ওয়্যার্ড ইথারনেট, যখন এন 1 ওয়াইফাই ইন্টারফেস হয়)।

বিকল্প হিসাবে, netstat -iসমস্ত ইন্টারফেসের তালিকাবদ্ধ করবে এবং আপনি তাদের প্রত্যেকের জন্য নির্ধারিত আইপি ঠিকানাগুলি আপনাকে প্রদর্শন করবে।

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

MacBook:~ scutil
> show State:/Network/Global/IPv4
<dictionary> {
  PrimaryInterface : en0
  PrimaryService : C0550F84-5C07-484F-8D62-C8B90DC977D8
  Router : 10.103.4.1
}
> show State:/Network/Interface/en0/IPv4
<dictionary> {
  Addresses : <array> {
    0 : 10.103.4.234
  }
  BroadcastAddresses : <array> {
    0 : 10.103.4.255
  }
  SubnetMasks : <array> {
    0 : 255.255.255.0
  }
}

দয়া করে মনে রাখবেন যে উপরেরটি কমান্ড-লাইন কমান্ড হলেও এটি ইন্টারেক্টিভও রয়েছে (সুতরাং আপনি এটি চালান scutilএবং তারপরে এটির নিজস্ব কমান্ডগুলি প্রবেশ করুন)। প্রথম showকমান্ড আপনাকে ওএসের প্রাথমিক ইন্টারফেসের নাম বলে (যেমন এটি আপনার সিস্টেমের পছন্দ / নেটওয়ার্ক পছন্দসমূহ উইন্ডোতে তালিকার শীর্ষে থাকবে) পাশাপাশি আপনার ডিফল্ট রাউটারের আইপি ঠিকানা। দ্বিতীয় showকমান্ড State:/Network/Interface/<ifname>/IPv4আর্গুমেন্ট গ্রহণ করে (এই ক্ষেত্রে en0) এবং আপনাকে নির্ধারিত আইপি ঠিকানা দেয়। আপনি ঠিকানাগুলি অ্যারেতে ঠিকানাটি সন্ধান করছেন, অন্য দুটি এন্ট্রি ব্রডকাস্ট ঠিকানা এবং নেটমাস্ক।

আশা করি এটি সাহায্য করে, তবে যদি কিছু পরিষ্কার না হয় তবে আমাকে জানান।


1
এই উত্তরের জন্য ধন্যবাদ। আইপিটি আপনার প্রাথমিক ইন্টারফেসটি পেতে একটি দ্রুত স্ক্রিপ্ট লিখেছিলাম:echo "show State:/Network/Interface/$(echo 'show State:/Network/Global/IPv4' | scutil | grep 'PrimaryInterface ' | sed 's/ PrimaryInterface : //')/IPv4" | scutil | pcregrep -Mo1 " Addresses : <array> {\n 0 : ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})"
ডিসি_

4

আপনার কম্পিউটারের আইপি ঠিকানাটি ইন্টারনেটের মুখোমুখি করতে, এখানে একটি কার্যক্ষম রেসিপি দেওয়া হয়েছে:

if=`netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'`
ifconfig ${if} | awk '{ if ($1 ~/inet/) { print $2} }'

আপনার একাধিক ইন্টারফেস সক্রিয় থাকা সত্ত্বেও এটি কাজ করা উচিত, এমনকি যখন আপনার ইন্টারফেস রয়েছে তখনও আপনি জানেন না যে কোনটি আসলে ডিফল্ট গেটওয়ে।


এটি অভ্যন্তরীণ নেটওয়ার্কের আইপি ঠিকানা পেয়েছে (যেমন: 192.168.0.*)বাহ্যিক
কোনওটি

এই মতামতের জন্য আপনাকে ধন্যবাদ। আপনি আমাকে ওএসের কোন সংস্করণে বলতে পারেন? আপনি কি আমাকে আউটপুট সরবরাহ করতে পারেন netstat -nr | grep default?
ড্যান

এটি ইন্টারফেসের আইপি পায় যা বহির্মুখী ট্র্যাফিকের কাজ করে। যদি আপনি NAT এর পিছনে থাকেন তবে এটি আপনার ল্যান ঠিকানা দেবে, WAN ঠিকানা নয়। তবে এটি অনেকগুলি উদ্দেশ্যে কার্যকর হতে পারে এবং এটি নেটওয়ার্কের জন্য পৌঁছায় না।
folx

1

কেবল রেকর্ডের জন্য, আপনি নিম্নলিখিত বিষয়বস্তু দিয়ে বাশ স্ক্রিপ্ট তৈরি করতে পারেন যা আপনাকে আপনার বাহ্যিক আইপি ঠিকানা দেয়

#!/bin/bash    
wget -qO - http://ipecho.net/plain; echo

3
ডিফল্টরূপে wgetম্যাকোসের একটি অংশ নয় এবং এটি একটি নন-অ্যাপল উত্স থেকে ইনস্টল করা প্রয়োজন।
ব্যবহারকারীর 3439894

প্রশ্নটি কি ম্যাকোস নির্দিষ্ট? এটি ডিফল্টরূপে অনেকগুলি লিনাক্স বিতরণে ইনস্টল করা হয়।
ব্যবহারকারী 702846

এই সাইটটি অ্যাপল হার্ডওয়্যার এবং সফ্টওয়্যার সম্পর্কে, সুতরাং ম্যাকোস এবং আইওএস অনুমান করা হয়।
GRG

এর জন্য ডিফল্ট ম্যাকোস কমান্ডটি কার্ল ব্যবহার করে হবে:curl -s http://ipecho.net/plain; echo
থিম্মেক ek
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.