2017-02-28 83 views
0

我的工作場所有一個相當複雜的PAC文件,用於確定哪些代理HTTP(S)流量應該用於訪問各種內部和外部網絡。對於Chrome,Safari等,這很好,但對命令行工具(curl,大多數腳本語言HTTP庫)來說很糟糕。正常的解決方案是設置各種環境變量,如HTTP_PROXYproxy.example.com:8888,但這不適用於PAC。相反,我們大多數人在localhost上運行某種類型的PAC感知代理,並通過它發送所有內容。OSX:爲什麼curl不使用自動代理配置/ PAC?

我的問題是,爲什麼這是必需的第一個地方? OSX很好地評估PAC規則的自身連接,但curl等不能? networksetup給了我這樣的:

$ networksetup -listallhardwareports 
Hardware Port: Wi-Fi 
Device: en0 
Ethernet Address: ... 
$ networksetup -getproxyautodiscovery Wi-Fi 
Auto Proxy Discovery: On 

我把那意味着要通過什麼應該en0有代理服務器自動發現。那是錯的嗎?代理自動發現和自動配置是否發生在只能通過Apple API(瀏覽器等使用)訪問的更高級別上? (如果是的話,我怎麼能訪問它們?)

+0

我不能告訴你爲什麼功能是你描述的方式(這一直是這樣的看似多年)。有一種方法可以讓[腳本](https://github.com/macmule/setAutomaticProxyConfigurationURL)完成所有繁重的工作,但是可以與終端等一起使用,以便與pac文件一起使用。有一個問題(https://github.com/macmule/setAutomaticProxyConfigurationURL/issues/1),您可能需要先解決它與最新的OS X兼容的問題。 –

+0

@AndrewO,我們有同樣的問題。你可以在你使用的localhost解決方案上的PAC感知代理上分享一些更具體的內容嗎?我搜索了一些OS X代理應用程序,但一直沒能找到PAC感知的應用程序。 – tleish

回答

2

OS X 10.11及以上包括nscurl,這是一個簡化的捲曲狀的工具,它使用該平臺的API進行網絡傳輸。我希望它支持代理以及任何OS X應用程序,儘管它沒有完整的所有功能curl

+0

謝謝。它比我以前更接近,但不是那裏。正如你所提到的,它不是'curl'或'libcurl'的完整替代品。即使是這樣,很多東西也不得不重新鏈接或重新編譯(對於像Java這樣的異常情況來說也是如此)。 但它確實提供了一個暗示,我懷疑這些功能只能通過Apple基金會或AppKit等Apple API獲得(進一步的證據[這裏](https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/)概念/ NetworkingOverview/ChoosingTheRightNetworkingAPI/ChoosingTheRightNetworkingAPI.html))。 – AndrewO

相關問題