, sana NSURLSession
, NSURLConnection
, UIWebView
veya WKWebView
demek varsayalım. Bunların her biri biraz farklı bir durumdur, ama hepsinde, cevap doğrudan mümkün değildir (ancak aşağıya bakınız; dolaylı olarak mümkündür). Herhangi birinin kullandığı temel yuvalara erişiminiz yoktur. Hepsi "soket" elde edebilecek olsanız bile bazı şeyleri hafifleten bağlantı havuzu kullanır. Ve UIWebView
ve WKWebView
durumlarında, www.google.com
için tek bir istek, her biri potansiyel olarak farklı bir IP adresiyle etkileşim kurabilen birkaç bağımsız bağlantı oluşturabilir.
(Yapmaya çalıştığınız şeyden biraz etkilendim. Yük dengelemesinden dolayı, tek bir IP adresi tek bir sunucu anlamına gelmez, dolayısıyla IP adresleri CNAME'den çok daha az belirleyicidir. ters proxy'ler ....)
Eğer bu tür bir erişime ihtiyacınız varsa, soketi kendiniz yönetmek zorundasınız. Bu genellikle WKWebView
hariç tüm sistemlerde mümkündür. Bir soket oluşturmayı ve CFSocket
ve CFHTTPMessage
'u kullanarak HTTP'yi nasıl gerçekleştireceğinizi (veya kolayca okuyabileceğinizi) bildiğinizi varsayacağım. Bu, kapsamlı olarak CFNetwork Programming Guide'da kaplıdır. Soketi oluşturduysanız, hangi ana bilgisayara bağlı olduğunuzu kontrol etmek için CFSocketCopyPeerAddress
'u kullanabilirsiniz. İstediğiniz parça bu.
Bu tür bir yuva oluşturabildiğiniz ve bunu kendi başınıza yönetebildiğiniz için, bunu bir NSURLProtocol
kullanarak büyük URL yükleyicilerine (WKWebView
hariç) bağlayabilirsiniz. Hızlı bir giriş ve bazı örnek kod için bkz. Drop-in Offline Caching for UIWebView (and NSURLProtocol). İsteğinizi almanız ve bağlandığınız bağlantı noktasını görebilmeniz için CFSocket
ile kendiniz yapmanız gerekir.
http: // stackoverflow.com/questions/6807788/nasıl yapılır-ip-adresi-iphone-programatik –
@SaurabhPrajapati Bu yazıyı okudum, ama istediğim şey değil, lütfen açıklamama bakın. Yine de teşekkürler. – feihu