কমান্ড লাইন থেকে বর্তমানে সংযুক্ত নেটওয়ার্ক পরিষেবাটি কীভাবে সন্ধান করবেন?


20

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

নেটওয়ার্ক পছন্দসমূহ

কমান্ড লাইন থেকে আমি কীভাবে এই তথ্যটি পেতে পারি?

networksetupকমান্ড আমাকে প্রাপ্তিসাধ্য নেটওয়ার্ক পরিসেবা তালিকা অনুমতি দেয়:

$ networksetup -listallnetworkservices
An asterisk (*) denotes that a network service is disabled.
Ethernet
FireWire
Wi-Fi

এটি পরিষেবাতে ডিভাইসের নামের মতো কিছু বিশদও প্রদর্শন করতে পারে:

$ networksetup -listnetworkserviceorder
An asterisk (*) denotes that a network service is disabled.
(1) Ethernet
(Hardware Port: Ethernet, Device: en0)

(2) FireWire
(Hardware Port: FireWire, Device: fw0)

(3) Wi-Fi
(Hardware Port: Wi-Fi, Device: en1)

দুর্ভাগ্যক্রমে, কোন পরিষেবাতে সক্রিয় রয়েছে তার তথ্য (স্ক্রিনশট থেকে সবুজ বিন্দু) এই তথ্যটিতে পাওয়া যায় না। এই তথ্যটি পেতে আমি কি আরও একটি আদেশ ব্যবহার করতে পারি?

উত্তর:


7

সহজভাবে ইস্যু

    ifconfig

সমস্ত নেটওয়ার্ক ইন্টারফেস এবং তাদের স্থিতি তালিকাবদ্ধ করুন।


সত্য - প্রতিটি রেকর্ডে একটি statusক্ষেত্র থাকে যা হয় হয় activeবা inactiveমান হিসাবে হয়।
নিউউইনক্লার

1
আপনি যদি আপনার ইন্টারনেট ভাগ করে নিচ্ছেন তবে এটি আপনাকে ভুয়া ফলাফল দেবে। ধরুন আপনারা যদি ওয়াইফাইয়ের মাধ্যমে ইথারনেট ইন্টারনেট ভাগ করে নিচ্ছেন তবে ইথারনেট এবং ওয়াইফাই উভয়ের স্ট্যাটাস "সক্রিয়" থাকবে
হর্ষাল চৌধারি

3
এটি আপনাকে কোন পরিষেবাটি ব্যবহৃত হচ্ছে তা দেখায় না - যদি আপনি উভয় সক্ষম করে থাকেন এবং কোনও ইথারনেট কর্ড প্লাগ ইন করে থাকে তবে WiFi এবং ইথারনেট উভয়ই 'সক্রিয়' হিসাবে দেখায়
tog22

1
কোনও সংযোগ সংযুক্ত নেই কিনা তা যাচাই করার জন্য এটি বেশ কার্যকর। উদাহরণস্বরূপ আমার ইথারনেট সাধারণত কর্মক্ষেত্রেই সংযুক্ত থাকে। সুতরাং আমি তালিকায় থাকা না হয়ে আমি ঘরে বসে অনুমান করতে পারি। ifconfig | grep $(networksetup -listnetworkserviceorder | grep 'Ethernet, Device' | sed -E "s/.*(en[0-9]).*/\1/")। তারপরে আমি উপরের খালি থাকার ভিত্তিতে অবস্থানগুলি স্যুইচ করতে পারি।
ক্রিস রাইমার

এটি কেবলমাত্র নেটওয়ার্ক সার্ভিস নয় সমস্ত নেটওয়ার্ক ইন্টারফেসের তালিকাবদ্ধ করে।
অ্যালগাল

16

এই সব একসাথে রাখুন, আমি এই কাজটি সম্পাদন করার জন্য একটি স্ক্রিপ্ট লিখেছিলাম:

#!/bin/bash

services=$(networksetup -listnetworkserviceorder | grep 'Hardware Port')

while read line; do
    sname=$(echo $line | awk -F  "(, )|(: )|[)]" '{print $2}')
    sdev=$(echo $line | awk -F  "(, )|(: )|[)]" '{print $4}')
    #echo "Current service: $sname, $sdev, $currentservice"
    if [ -n "$sdev" ]; then
        ifout="$(ifconfig $sdev 2>/dev/null)"
        echo "$ifout" | grep 'status: active' > /dev/null 2>&1
        rc="$?"
        if [ "$rc" -eq 0 ]; then
            currentservice="$sname"
            currentdevice="$sdev"
            currentmac=$(echo "$ifout" | awk '/ether/{print $2}')

            # may have multiple active devices, so echo it here
            echo "$currentservice, $currentdevice, $currentmac"
        fi
    fi
done <<< "$(echo "$services")"

if [ -z "$currentservice" ]; then
    >&2 echo "Could not find current service"
    exit 1
fi

স্ক্রিপ্টটি প্রথমে networksetupকমান্ড থেকে একটি পরিষেবা তালিকা পেয়েছে , তারপরে প্রতিটি পরিষেবাটি সক্রিয় স্থানে রয়েছে কিনা তা পরীক্ষা করে দেখুন ifconfig

networkservice.shউদাহরণস্বরূপ স্ক্রিপ্টটির নাম দিন , তারপরে আপনি চালু থাকা নেটওয়ার্ক সার্ভিসটি পেতে এটি কার্যকর করুন।

$ bash networkservice.sh
USB 10/100/1000 LAN, en4, 00:e0:4a:6b:4d:0c
Wi-Fi, en0, 8c:85:90:a0:4b:ec

tacবিপরীত ক্রমে ইন্টারফেসের মাধ্যমে পুনরাবৃত্তি করতে আমাকে প্রথম লাইনটি পাইপ করতে হয়েছিল কারণ আমার প্রায়শই ওয়াইফাই সংযুক্ত থাকে পাশাপাশি একটি ইউএসবি ইথারনেট অ্যাডাপ্টার (যা নেটওয়ার্কে পছন্দসই ডিভাইস)। এই ক্ষেত্রে আমি চাই সবচেয়ে পছন্দের সক্রিয় উইল ছাপা হবে:services=$(networksetup -listnetworkserviceorder | grep 'Hardware Port' | tac)
ghr

@ জিআর যে কোনও অর্থবোধ করে না, networksetup -listnetworkserviceorderইতিমধ্যে "সর্বাধিক পছন্দের ডিভাইস "টিকে প্রথমে আউটপুট করে ...
মোটেল

দেখে মনে হচ্ছে যে আমি উপরের স্ক্রিপ্টটি কিছুটা সংশোধন করে শেষ করেছি যাতে এটি কোনও সংযুক্ত না হয়ে কেবল 1 টি পরিষেবা প্রিন্ট করে। আমাকে tacতাই করতে হয়েছিল যাতে পরে (পছন্দ না করা) পরিষেবাগুলি ওভাররাইট না করে $currentservice। সেই মূল মন্তব্যে আরও পরিষ্কার হওয়া উচিত ছিল।
ghr

5

scutil --dnsকমান্ড আপনাকে সমস্ত নেটওয়ার্ক রাউটিং তথ্য আপনি নেটওয়ার্কের যাত্রাপথ হার্ডওয়্যার ইন্টারফেস লেবেল ম্যাপ করতে হবে দেয়।

আপনার যদি তথ্য স্ক্রিপ্ট করতে হয় বা এটি ডাউন করতে হয় তবে এটি সামান্য awkএবং grepএটি সুন্দর করতে পারে। আপনি যদি কৌতূহলী হন তবে "if_index" এর জন্য গ্রিপিং শুরু করুন।


এটি দরকারী বলে মনে হচ্ছে - আমি এটির সাথে খেলব!
নবীনদার

3

নীচে দেওয়া কোডটি আপনি যেমন সন্ধান করছেন তার চেয়ে বেশি হতে পারে এমনভাবেই কেবল অন্য কাউকে হোঁচট খাওয়ানো।

এটি পিটারভিপি-র উত্তরে প্রসারিত করা

Https://www.kittell.net/code/mac-os-x-get-network-inifications/ এও দৃশ্যমান

#! / বিন / SH

পরিষ্কার
sExternalMACALService = "http://dns.kittell.net/macaltext.php?address="

# সমস্ত নেটওয়ার্ক পোর্ট তালিকাভুক্ত করুন
নেটওয়ার্কপোর্টস = $ (ifconfig -uv | গ্রেপ '^ [a-z0-9]' | awk -F: '{মুদ্রণ $ 1}')
#echo $ নেটওয়ার্কপোর্টস

# আইপি সাবনেট মাস্ককে সিআইডিআরে রূপান্তরিত করার কাজ
mask2cdr ()
{
# ধরে নিন "255" নেই মাস্কে একটি নন-255 বাইট পরে
স্থানীয় x = $ {1 ## * 255}
সেট - 0 ^^^ 128 ^ 192 ^ 224 ^ 240 ^ 248 ^ 252 ^ 254 ^ $ ((($ {# 1} - {# x}) * 2)) $ {x %%। *}
এক্স = $ {1 %% $ 3 *}
প্রতিধ্বনি $ (($ 2 + ($ {# x} / 4)))
}

# দূরবর্তী / পাবলিক আইপি ঠিকানা পান
রিমোটিপ = $ (খনন + ছোট myip.opendns.com @ resolver1.opendns.com)

# কম্পিউটারের নাম পান
computername = $ (স্কুটিলে - কম্পিউটার কম্পিউটারের নাম)

# সিরিয়াল নম্বর পান
sSerialNumber = $ (system_profiler SPHardwareDataType | grep "সিরিয়াল নম্বর (সিস্টেম)" | awk '{মুদ্রণ $ 4}' | কাট-ডি / -ফ 1)
# টিচো Sসিরিয়াল নাম্বার

# অপারেটিং সিস্টেমের নাম এবং সংস্করণ পান - শুরু করুন
OSvers1 = $ (sw_vers-productVersion | কাট-ডি। -F1)
OSvers2 = $ (sw_vers-productVersion | কাট-ডি। -F2)
OSvers3 = $ (sw_vers-product- সংস্করণ | কাট-ডি। -F3)
কেস $ OSvers2 ইন
8)
OSName = "মাউন্টেন সিংহ"
;;
9)
OSName = "মাভারিক্স"
;;
10)
OSName = "ইয়োসেমাইট"
;;
11)
OSName = "এল ক্যাপ্টেন"
;;
12)
OSName = "সিয়েরা"
;;
ডিফল্ট)
OSName = "অজানা"
;;
esac
# অপারেটিং সিস্টেমের নাম এবং সংস্করণ পান - বন্ধ করুন


প্রতিধ্বনি "u সংজ্ঞা"
প্রতিধ্বনি "--------------"
প্রতিধ্বনি "কম্পিউটার ওএস: ম্যাক ওএস এক্স - $ ওএসনাম $ OSvers1। $ OSvers2। $ OSvers3"
প্রতিধ্বনি "কম্পিউটারের নাম: u সংজ্ঞা"
প্রতিধ্বনি "বর্তমান ব্যবহারকারীর নাম: $ (হোয়ামি)"
প্রতিধ্বনিত "সিরিয়াল নম্বর: S সরকারী সংখ্যা"

যদি [[$ রিমোটিপ]]; তারপর
প্রতিধ্বনি "দূরবর্তী আইপি ঠিকানা: $ রিমোটিপ \ n"
আর
প্রতিধ্বনি "দূরবর্তী আইপি ঠিকানা: নির্ধারণ করতে অক্ষম \ n"
ফাই

val নেটওয়ার্কপোর্টে ভাল করুন # সমস্ত উপলব্ধ হার্ডওয়্যার পোর্টগুলির জন্য তাদের স্থিতি পান
সক্রিয় = $ (ifconfig -uv "$ ভাল" | গ্রেপ 'অবস্থা:' | awk '{মুদ্রণ $ 2}')
#echo $ সক্রিয় হয়েছে
লেবেল = $ (ifconfig -uv "$ ভাল" | গ্রেপ 'টাইপ' | awk '{মুদ্রণ $ 2}')
#echo $ লেবেল
#ActiveNetwork = $ (রুট ডিফল্ট পান | গ্রেপ ইন্টারফেস | awk '{মুদ্রণ $ 2}')
অ্যাক্টিভনেটওয়ার্কনেম = $ (নেটওয়ার্কসেটআপ-লিস্টলহার্ডওয়্যারপোর্টস | গ্রেপ-বি 1 "$ লেবেল" | অ্যাওয়ার্ক '/ হার্ডওয়্যার পোর্ট / {প্রিন্ট}' | কাট-ডি "" -f3- | ইউনিক)
#echo $ অ্যাক্টিভেটওয়ার্ক
#echo $ অ্যাক্টিভ নেটওয়ার্ক নাম ame
state = $ (ifconfig -uv "$ val" | গ্রেপ 'অবস্থা:' | awk '{মুদ্রণ $ 2}')
# টিচো $ রাষ্ট্র
ipaddress = $ (ifconfig -uv "$ ভাল" | গ্রেপ 'inet' | awk '{মুদ্রণ $ 2}')
# প্রতিধ্বনি ip আইপিড্রেস

যদি [[-z $ (ifconfig -uv "$ ভাল" | গ্রেপ 'লিঙ্ক রেট:' | awk '{মুদ্রণ $ 3, $ 4}' | সেড 'এন; এস / \ এন / আপ /')]]; তারপর
নেটওয়ার্কস্পিড = "$ (ifconfig -uv" $ ভাল "| গ্রেপ 'লিঙ্ক রেট:' | awk '{মুদ্রণ $ 3}') উপরে / ডাউন"
আর
নেটওয়ার্কস্পিড = "$ (ifconfig -uv" $ ভাল "| গ্রেপ 'লিঙ্ক রেট:' | awk '{মুদ্রণ $ 3, $ 4}' | সেড 'এন; এস / \ এন / আপ /') ডাউন"
ফাই

#echo $ নেটওয়ার্কস্পিডযুক্ত
macaddress = $ (ifconfig -uv "$ val" | গ্রেপ 'ইথার' | awk '{মুদ্রণ $ 2}')
# টেকো c ম্যাক্যাড্রেস
ম্যাকাল = $ (কার্ল-এস "E এসিটার্নাল ম্যাকাল সার্ভিস S ম্যাক্যাড্রেস")
# টেকো c ম্যাকাল
গুণমান = $ (ifconfig -uv "$ ভাল" | গ্রেপ 'লিঙ্কের গুণমান:' | awk '{মুদ্রণ $ 3, $ 4}')
# টেকো $ মানের
নেটমাস্ক = $ (ipconfig getpacket "$ ভাল" | গ্রেপ 'সাবনেট_মাস্ক (আইপি):' | awk '{মুদ্রণ $ 3}')
#echo $ নেটমাস্ক
রাউটার = $ (ipconfig getpacket "$ ভাল" | গ্রেপ 'রাউটার (ip_mult):' | সেড এর /.* রাউটার (ip_mult): {\ ([^}] * \)}। * / \ 1 / ')
#echo। রাউটার
DHCPActive = $ (নেটওয়ার্কসেটআপ-বিগেইনফো "ওয়াই-ফাই" | গ্রেপ ডিএইচসিপি)
#echo $ DHCPAtive
dnsserver = $ (networksetup -getdnsservers "$ ActiveNetworkName" | awk '{মুদ্রণ $ 1, $ 2}' | সেড 'N; s / \ n //')
#echo ns dnsserver

যদি ["$ সক্রিয়" = 'সক্রিয়']; তারপর
#echo "নেটওয়ার্ক পোর্ট সক্রিয়"
যদি [[ip ipaddress]]; তারপর
প্রতিধ্বনি "$ অ্যাকটিভ নেটওয়ার্কনেম ($ ভাল)"
প্রতিধ্বনি "--------------"
# এটি কি ওয়াইফাই সম্পর্কিত বন্দর? যদি তা হয়, তবে আমরা নেটওয়ার্কের নাম চাই
যদি ["$ লেবেল" = "Wi-Fi"]; তারপর
ওয়াইফাইনাম = $ (/ সিস্টেম / গ্রন্থাগার / প্রাইভেট ফ্রেমওয়ার্কস / অ্যাপল 80211. ফ্রেমওয়ার্ক / সংস্করণ / এ / রিসোর্স / বিমানবন্দর -I | গ্রেপ 'SS এসএসআইডি:' | সেড 's /.*: //')
#echo $ WiFiName
প্রতিধ্বনি "নেটওয়ার্কের নাম: $ ওয়াইফাই নাম"
ফাই

প্রতিধ্বনি "আইপি ঠিকানা: ip আইপ্যাড্রেস"
প্রতিধ্বনি "সাবনেট মাস্ক: $ নেটমাস্ক"
প্রতিধ্বনি "রাউটার: $ রাউটার"
প্রতিধ্বনি "আইপি সিআইডিআর: ip আইপ্যাড্রেস / $ (মাস্ক 2 সিডিআর $ নেটমাস্ক)"

যদি [[-z $ dnsserver]]; তারপর
যদি [[$ DHCPAtivetive]]; তারপর
প্রতিধ্বনি "ডিএনএস সার্ভার: ডিএইচসিপি সহ সেট করুন"
আর
প্রতিধ্বনি "ডিএনএস সার্ভার: অজানা"
ফাই
আর
প্রতিধ্বনি "ডিএনএস সার্ভার: ns ডিজেন্সার"
ফাই

প্রতিধ্বনি "ম্যাক-ঠিকানা: c ম্যাক্যাড্রেস ($ ম্যাকাল)"
প্রতিধ্বনিত "নেটওয়ার্কের গতি: pe নেটওয়ার্কস্পিড"
প্রতিধ্বনি "লিঙ্কের গুণমান: $ গুণমান"
প্রতিধ্বনি ""
ফাই

নিষ্ক্রিয় পোর্টগুলি প্রদর্শন করবেন না।
ফাই

সম্পন্ন

আমার স্ক্রিপ্টে আমি পাবলিক ক্যোয়ারিকে এর সাথে প্রতিস্থাপন করেছি: এর জন্য set public (dig +short myip.opendns.com @resolver1.opendns.com) আমার যুক্তিটি হ'ল কোনও ডিএনএস সার্ভার (ওপেনডেনের মতো) কোনও ওয়েবসাইটের চেয়ে কম হওয়ার সম্ভাবনা কম এবং দ্রুত is এবং আমি ঘুম বিবৃতি অপসারণ। ডিএনএস-সার্ভারের উত্তরের জন্য অপেক্ষা করার দরকার নেই। আমার স্ক্রিপ্ট 177 এমএস এর কার্যকর করার সময় ইতিমধ্যে 5.237 সেকেন্ড সময় নেয় তবে অবশ্যই আরও কিছু করে। এখনও একটি বড় পার্থক্য।
পিটারভিপি

দুর্দান্ত পরামর্শ
ডেভিড কিটেল

2

আমি এই প্রশ্নের উত্তর বাছাই করার ভান করব না তবে এটি তবে এটি সহায়ক হতে পারে।

আপনি এটি জিজ্ঞাসা করতে পারেন কীভাবে এটি বর্তমানে কোনও কিছুতে প্যাকেটগুলি রুট করবে:

$ route get example.com | grep interface
interface: en8

এবং তারপরে আপনি জিজ্ঞাসা করতে পারেন "নেটওয়ার্ক পরিষেবা" সেই ইন্টারফেসটি পরিচালনা করছে কি:

$ networksetup -listnetworkserviceorder | grep en8
(Hardware Port: Broadcom NetXtreme Gigabit Ethernet Controller, Device: en8)

তবে সত্যই, আমি সন্দেহ করি যে একটি "নেটওয়ার্ক পরিষেবাদি" একটি হার্ডওয়ার পোর্ট সহ এক এক। এবং কিছু ইন্টারফেস, উদাহরণস্বরূপ, টিউনগুলিতে "নেটওয়ার্ক পরিষেবা" নেই। ওয়েল কমপক্ষে কখনও কখনও তারা না।


1

ম্যাক ওএস এক্সের কমান্ড লাইন থেকে বিশদ ওয়াই-ফাই সংযোগের ইতিহাস অনুসন্ধান থেকে নেওয়া ওএসএক্সডেইলি :

ম্যাক ওএস এক্স, ওএস এক্স ইয়োসেমাইট 10.10 এবং আরও নতুন সংস্করণের জন্য, নিম্নলিখিতটি ব্যবহার করুন:

defaults read /Library/Preferences/SystemConfiguration/com.apple.airport.preferences |grep LastConnected -A 7

রিটার্নটি হিট করুন এবং আপনি তাত্ক্ষণিকভাবে ওয়্যারলেস নেটওয়ার্ক সংযোগ বিশদের বিশদ তালিকাটি দেখতে পাবেন।

আপনি সংযোগের ইতিহাস সম্পর্কে প্রচুর তথ্য পান, বর্তমানের বিবরণ সহ।

নিখুঁত নয় তবে আপনি যে তথ্যটি সন্ধান করছেন - এবং আরও অনেক অতিরিক্ত তথ্য পাবেন!


1

এখানে আমি লিখেছি ফিশ শেল লিপি:

function netinfo -d "get network information"

  # Get public ip address
  set public (dig +short myip.opendns.com @resolver1.opendns.com)
  set hostname (uname -n)

  if test -z "$public" # We got an empty string, meaning:
    set public "No Internet connection available"
  end

  echo ''
  echo "    Public IP: $public"
  echo "     Hostname: $hostname"
  echo ''

  # Get all available hardware ports
  set ports (ifconfig -uv | grep '^[a-z0-9]' | awk -F : '{print $1}')

  # Get for all available hardware ports their status
  for val in $ports
    set activated (ifconfig -uv $val | grep 'status: ' | awk '{print $2}')

    # We want information about active network ports...
    if test $activated = 'active' ^/dev/null
      set ipaddress (ifconfig -uv $val | grep 'inet ' | awk '{print $2}')

      # and of these, the ones with an IP-address assigned to it
      if test -n "$ipaddress" ^/dev/null

        # Do we have an IP address?
        # Then give us the information
        set label (ifconfig -uv $val | grep 'type' | awk '{print $2}')
        set macaddress (ifconfig -uv $val | grep 'ether ' | awk '{print $2}')
        set quality (ifconfig -uv $val | grep 'link quality:' | awk '{print $3, $4}')
        set netmask (ipconfig getpacket $val | grep 'subnet_mask (ip):' | awk '{print $3}')
        set router (ipconfig getpacket $val | grep 'router (ip_mult):' | sed 's/.*router (ip_mult): {\([^}]*\)}.*/\1/')
        set dnsserver (ipconfig getpacket $val | grep 'domain_name_server (ip_mult):' | sed 's/.*domain_name_server (ip_mult): {\([^}]*\)}.*/\1/')

        # Header for the network interfaces
        echo -n $label ; echo -n ' ('; echo -n $val ; echo ')'
        echo "--------------"

        # Is this a WiFi associated port? If so, then we want the network name
        switch $label
          case Wi-Fi
            # Get WiFi network name
            set wifi_name (/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | grep '\sSSID:' | sed 's/.*: //')
            echo " Network Name: $wifi_name"
            # Networkspeed for Wi-Fi
            set networkspeed (/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | grep lastTxRate: | sed 's/.*: //' | sed 's/$/ Mbps/')
          case '*'
            # Networkspeed  for other ports
            set networkspeed (ifconfig -uv $val | grep 'link rate:' | awk '{print $3, $4}')
        end

        echo "   IP-address: $ipaddress"
        echo "  Subnet Mask: $netmask"
        echo "       Router: $router"
        echo "   DNS Server: $dnsserver"
        echo "  MAC-address: $macaddress"
        echo "Network Speed: $networkspeed"
        echo " Link quality: $quality"
        echo ''
      end

      # Don't display the inactive ports.
    else if test $activated = 'inactive' ^/dev/null
    end
  end
end

এটি সমস্ত সক্রিয় নেটওয়ার্ক ইন্টারফেস এবং প্রাসঙ্গিক ডেটা দেখায়।

আপনি কি চান না / প্রয়োজন তা মন্তব্য করুন


1
একটি সংজ্ঞায়িত করতে সহজ হতে পারে echo_italicপরিবর্তে এই সব মোড়কে এর শেল ফাংশন echoমধ্যে গুলি set_colorকল।
nohillside

সমস্ত set_colorকমান্ড অপসারণ করা যেতে পারে। তারা কেবল 'আলংকারিক'।
পিটারভিপি

1
সরানো set_colorকমান্ডগুলি এবং প্রতিধ্বনির
বিবরণগুলির মধ্যে

0

এটি কারও পক্ষে সহায়ক কিনা তা নিশ্চিত নই, তবে আমি একই প্রশ্নের সাথে ঝুঁকতে থাকি, আমি এই সমাধানে এসেছি:

ifconfig | grep flags=8863 | grep -v bridge

আউটপুটটি এরকম কিছু দেখায় এবং কেবলমাত্র ইথারনেট পোর্ট এবং ওয়াইফাই তালিকাভুক্ত করে যা সক্রিয় ব্যবহারে রয়েছে:

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

আপনি যদি নির্ধারিত আইপিভি 4 ঠিকানাটিও দেখতে চান তবে:

ifconfig | grep 'flags=8863\|inet ' | grep -v 'bridge\|127.0.0.1'

যা এরকম কিছু উত্পাদন করে;

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.2.147 netmask 0xffffff00 broadcast 192.168.2.255
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.2.244 netmask 0xffffff00 broadcast 192.168.2.255

অন্য বিকল্প:

scutil --nwi

যা অনলাইন নেটওয়ার্ক ডিভাইসগুলি দেখায় শেষ লাইনটি বর্তমানে সক্রিয় নেটওয়ার্ক ইন্টারফেসগুলি দেখায়:

Network information

IPv4 network interface information
     en0 : flags      : 0x5 (IPv4,DNS)
           address    : 192.168.2.147
           reach      : 0x00000002 (Reachable)
     en1 : flags      : 0x5 (IPv4,DNS)
           address    : 192.168.2.244
           reach      : 0x00000002 (Reachable)

   REACH : flags 0x00000002 (Reachable)

IPv6 network interface information
   No IPv6 states found


   REACH : flags 0x00000000 (Not Reachable)

Network interfaces: en0 en1

আরও প্রক্রিয়াজাতকরণ, যদি প্রয়োজন হয়, আপনার উপর নির্ভর করে। :-)


বিঃদ্রঃ:

মনে রাখবেন যে আমি পতাকাগুলির (8863) বিশেষজ্ঞ নই। আপনি if.h শিরোনাম ফাইলে ফ্ল্যাগের বিশদটি সন্ধান করতে পারেন - "if.h" সন্ধানে স্পটলাইট আপনার বন্ধু। আমি এখানে আমার উদাহরণ খুঁজে পেয়েছি:

/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/net/if.h

ফ্ল্যাগগুলির অর্থ কী তা আপনাকে দেখাবে (মনে রাখবেন: হেক্সাডেসিমাল);

#define IFF_UP          0x1             /* interface is up */
#define IFF_BROADCAST   0x2             /* broadcast address valid */
#define IFF_DEBUG       0x4             /* turn on debugging */
#define IFF_LOOPBACK    0x8             /* is a loopback net */
#define IFF_POINTOPOINT 0x10            /* interface is point-to-point link */
#define IFF_NOTRAILERS  0x20            /* obsolete: avoid use of trailers */
#define IFF_RUNNING     0x40            /* resources allocated */
#define IFF_NOARP       0x80            /* no address resolution protocol */
#define IFF_PROMISC     0x100           /* receive all packets */
#define IFF_ALLMULTI    0x200           /* receive all multicast packets */
#define IFF_OACTIVE     0x400           /* transmission in progress */
#define IFF_SIMPLEX     0x800           /* can't hear own transmissions */
#define IFF_LINK0       0x1000          /* per link layer defined bit */
#define IFF_LINK1       0x2000          /* per link layer defined bit */
#define IFF_LINK2       0x4000          /* per link layer defined bit */
#define IFF_ALTPHYS     IFF_LINK2       /* use alternate physical connection */
#define IFF_MULTICAST   0x8000          /* supports multicast */
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.