বাশ স্ক্রিপ্টে আমি কীভাবে ম্যাক ওএস এক্স এর প্রক্সি তথ্য পেতে পারি?


13

আমার ল্যাপটপে আমার বেশ কয়েকটি নেটওয়ার্ক লোকেশন রয়েছে: ওয়ার্ক, হোম ইত্যাদির কাজগুলির একটিতে একটি প্রক্সি সার্ভার সেট আপ থাকে, অন্যরা তা করে না। এটি ওএসএক্স অ্যাপ্লিকেশনগুলির জন্য দুর্দান্ত কাজ করে - সাফারি, মেল এমনকি ফায়ারফক্স এবং থান্ডারবার্ড সহ সিস্টেম প্রক্সি প্লাগইন।

টার্মিনাল অ্যাপ্লিকেশন যেমন git, svn, gem, এবং curlআমি আমার নিম্নোক্ত আছে .bash_profile:

export HTTP_PROXY='http://proxy.mycompany.com:80'
export http_proxy=$HTTP_PROXY

আমার প্রশ্নটি হ'ল: আমার সিস্টেমের বর্তমান অবস্থান থেকে রফতানি ভেরিয়েবলের মান সন্ধান করার কোনও উপায় আছে কি? আমি এটি गतिशीलভাবে সম্পন্ন করতে পছন্দ করতাম (সুতরাং যদি আমি টার্মিনাল সেশনের সময় অবস্থানগুলি পরিবর্তন করি তবে এটি পরিবর্তিত হবে), তবে আমি .bash_profileদৌড়ানোর সময় এটি সেট করা মাত্র একটিতে খুশি হব (যার অর্থ একটি নতুন টার্মিনাল অধিবেশন শুরু করতে হবে) যখন আমি অবস্থানগুলি পরিবর্তন করেছি)।

ধন্যবাদ!


এখানে একটি বাশ স্ক্রিপ্ট রয়েছে যা প্রক্সি তথ্য আহরণের জন্য নেটওয়ার্কসেটআপ এবং সুরক্ষা ব্যবহার করে এবং http_proxy এবং https_proxy সেট করে: gist.github.com/alexargo/4657760

উত্তর:


8

ম্যাক ওএস এক্স এর কোন সংস্করণ? আমি ইতিবাচক নই ম্যাক ওএস এক্স 10.4 বা তার আগেরটির সাথে এই সরঞ্জামটি অন্তর্ভুক্ত করা হয়েছে।

networksetupআপনি যা খুঁজছেন তা হওয়া উচিত, যেমন sudo networksetup -getwebproxy NAME_OF_NETWORK_DEVICE(উদাঃ সুডো নেটওয়ার্কসেটআপ -getwebproxy বিমানবন্দর)

আউটপুটটি তাই প্রকাশিত হয়:

Enabled: Yes
Server: SERVER_ADDRESS
Port: 123
Authenticated Proxy Enabled: 0 for false, 1 for true

সুতরাং আপনার আউটপুটকে ব্যবহারযোগ্য কিছুতে রূপান্তর করতে হবে।

কয়েকবার বার অ্যাড ব্যবহার করে সত্যই অপরিশোধিত উদাহরণ হ'ল (আমার অ্যাজক দক্ষতা বরং মৌলিক)

sudo networksetup -getwebproxy Airport | awk {'print $2'} | awk {'getline l2; getline l3; print "http://"l2":"l3'} | head -n 1

একটি আউটপুট ফলাফল http://SERVER_ADDRESS:123


6
সমস্ত পরিষেবার একটি তালিকা:networksetup -listallnetworkservices
আরজান

2
আমি ধারণাটি পছন্দ করি তবে এটি আমার পক্ষে কার্যকর হয় না। আমি যদি কেবল এটি করি তবে আমি sudo networksetup -getwebproxy Ethernetপ্রিন্টআউট এবং তারপরে একটি সেগফোল্ট পাই। আমি ভেবেছিলাম সেগফ্ল্টের ফলে পাইপটি ভেঙে যায়, তাই awkকখনও বিশ্লেষণ করার মতো কিছুই পায় না।
জেমস এ রোজেন

কোন তথ্য আউটপুট আছে? এবং এটি কী এখনও অর্কের আদেশ ছাড়াই সেগফল্ট করে?
চিলিয়ন

আমি মনে করি আমি নিজের ম্যাকগুলিতে সেগমেন্টেশন ত্রুটিটি একবার দেখেছি saw আমার এখন 10.5.8 বা 10.6.1 (উভয় ইন্টেল) এ সমস্যা নেই। হতে পারে আপনি অন্য কোনও সংস্করণে আছেন?
আরজান

আমি 10.5.8 এ আছি, এবং এটি ছাড়া ঘটে awk। অ্যাজকে যুক্ত করা সেগফল্ট বার্তাটি অদৃশ্য করে তোলে। । । অন্যান্য সমস্ত আউটপুট সহ।
জেমস এ রোজেন

4

ইন উত্তর উপরে , একটি হল মন্তব্য থেকে tlrobinson সম্পর্কে কিভাবে এটা পোর্ট নম্বর অন্তর্ভুক্ত নয়।

আপনি HTTP প্রক্সি পোর্ট সহ HTTP প্রক্সি সার্ভারটি স্যুইচ আউট করে এটি করতে পারেন

আমি এটি এইভাবে করাও দেখেছি:

system_profiler SPNetworkDataType | grep "HTTP Proxy Server" | awk '{print $4}' | head -1
system_profiler SPNetworkDataType | grep "HTTP Proxy Port" | awk '{print $4}' | head -1

3

অতিরিক্তভাবে এই আদেশটি অন্যান্য প্রক্সি সেটিংস আবিষ্কার করতে সহায়তা করতে পারে: scutil --proxy


1

নিম্নলিখিতগুলি কাজ করে বলে মনে হচ্ছে তবে আমি কতটা দৃust় তা নিশ্চিত নই:

system_profiler SPNetworkDataType|grep "HTTP Proxy Server"|awk {'sub(/^.*:[ \t]*/, "", $0); print $0;'}

যদি আপনার অবস্থানটি proxy.pacহার্ড-কোডড প্রক্সি অবস্থানের পরিবর্তে কোনও ব্যবহার করে তবে এটি কাজ করে না ।


দুর্ভাগ্যক্রমে এটি বন্দর নম্বর অন্তর্ভুক্ত বলে মনে হচ্ছে না।
tlrobinson

0

আমার লেখা ছোট্ট সরঞ্জামটি আপনি ব্যবহার করতে পারেন যা প্রক্সিগুলির জন্য সাধারণত ব্যবহৃত পরিবেশের পরিবর্তনগুলি সেট করে। ব্যবহার সোজা:

  1. এটি এক্সকোড দিয়ে সংকলন করুন।
  2. যোগ করুন

    eval `./path/to/export-proxies`

    আপনার .profile, .bashrcবা .bash_profile

এরপর আপনি ভেরিয়েবল মত ব্যবহার করতে পারেন $HTTP_PROXY, $http_proxy, $HttpProxy, ইত্যাদি সকল প্রোটোকলের জন্য (সেটির HTTP, FTP, মোজা) সহ $NO_PROXYব্যতিক্রম। এটি বেশিরভাগ সিএলআই সরঞ্জামের জন্য কাজ করবে এবং ওএস এক্স নিয়ন্ত্রণ প্যানেল থেকে সেটিংস পেয়ে যাবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.