Ruby net :: http'in ipv6'da durmasını nasıl sağlayabilirim?


0

Yaklaşım kullanarak www.pivotaltracker.com ile konuşan iş akışım için kritik olan bazı araçlar var.

Ruby 2.1.2'den Ruby 2.1.3'e güncelleme, en son os x sistem güncellemeleri ve demleme güncellemelerinin bir kombinasyonu, işlevlerinin çok uzun zaman almaya başlamasına neden oldu ve nedeni ipv6 , kullanarak curl benzer api istekleri yapmak için:

    curl -v -H "X-TrackerToken: $TOKEN" -X GET http://www.pivotaltracker.com/services/v3/projects
    * About to connect() to www.pivotaltracker.com port 80 (#0)
    *   Trying 2607:f700:1:1388:c856:ed01:e1bf:b0e0…

www.pivotaltracker.com ipv6 adreslerinde bir veya iki dakika kaldıktan sonra ipv4 adresi sonunda denenir ve istek başarıyla tamamlanır.

Bu olmasına rağmen sudo networksetup -setv6off Ethernet ve ipv6’nın Tercihler & gt; Ayrıca benim doğru bir IPV4 girişi koyarak /etc/hosts.

Kullanırsam curl --ipv4 istek derhal tamamlanır. Ancak, kullanılan yakut komut dosyalarını nasıl zorlayacağımı çözemiyorum. net::http geçmek, atlamak ipv6

Bununla ilgili derinden sinir bozucu olan şey, aynı sorunun Mayıs veya Haziran aylarında bir dizi geliştirme ortamı yükseltmesiyle yaşanmasıydı ve bir şekilde bunu çözdüm, ancak kabuk geçmişime bakarak nasıl yeniden keşfedeceğimi ya da bulamıyorum Dosyalar.

Sorun pivotaltracker.com'a özgü değil, ancak ipv6 adresleri olan herhangi bir alan için de geçerlidir. Os X, aksi belirtilmediği sürece ilk önce ipv6 adreslerini dener, hangi tarayıcıların ve diğer bazı uygulamaların göründüğü, ancak yakut ve çoğu unix uygulamasının çalışmadığı. wget de durakları.

Sonunda yönlendiricimi yükseltirim ve tamamen ipv6 çalışacak, ancak bu arada bir geçici çözüm bulmak istiyorum.

İfconfig çıktısı

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    inet 127.0.0.1 netmask 0xff000000
    inet6 ::1 prefixlen 128
    inet6 fd3e:fe65:5a2c:ebe1:224:1dff:fe16:65d3 prefixlen 128
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 00:24:1d:16:65:d3
    inet 192.168.0.47 netmask 0xffffff00 broadcast 192.168.0.255
    media: autoselect (1000baseT <full-duplex>)
    status: active
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 2030
    lladdr 00:19:a1:fa:00:00:24:1d
    media: autoselect <full-duplex>
    status: inactive
vnic0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=3<RXCSUM,TXCSUM>
    ether 00:1c:42:00:00:08
    inet 10.211.55.2 netmask 0xffffff00 broadcast 10.211.55.255
    inet6 fe80::21c:42ff:fe00:8%vnic0 prefixlen 64 scopeid 0x6
    inet6 ::1 prefixlen 64
    media: autoselect
    status: active
vnic1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=3<RXCSUM,TXCSUM>
    ether 00:1c:42:00:00:09
    inet 10.37.129.2 netmask 0xffffff00 broadcast 10.37.129.255
    inet6 fe80::21c:42ff:fe00:9%vnic1 prefixlen 64 scopeid 0x7
    inet6 ::1 prefixlen 64
    media: autoselect
    status: active

netstat -r

netstat -r komutunu çalıştırdığımda, Sistem Tercihleri ​​& gt; Ağ & gt; Ethernet & gt; Gelişmiş…


Genel olarak tanımladığınız şey yalnızca makinenizde yapılandırılmış bir IPv6 adresiniz varsa, ancak IPv6 bağlantınız koptuğunda gerçekleşir. Tarayıcılar IPv4'e geri dönmek için mutlu gözbebekleri adı verilen bir algoritma kullanıyor. IPv6'yı kapattığınızı söylüyorsunuz. Çıktısını gösterebilir misin ifconfig ve netstat -r doğrulamak için?
Sander Steffann

@SanderSteffann Bunun bir kıvrık böcek olduğundan şüpheleniyorum. Curl’in, IPv6 adreslerini yalnızca IPv4 ile yapılandırılmış olan ana bilgisayarlardan IPv6 adreslerine bağlanmaya çalıştığını görme sayısını kaybettim.
Michael Hampton

@MichaelHampton Curl ile çoğalabildiğim halde, bu bir sistem sorunudur. Yakut scriptleri, wget'leri vb. Etkiler.
Michael Johnston

@SanderSteffann ifconfig ve netstat hakkında bilgi ekledim. Neden os x hala çalıştıktan sonra ipv6 kullanıyor? sudo networksetup -setv6off Ethernet? Bu arada benim için şu anda önemli olan adres (www.pivotaltracker.com) etkilenen tek hedef değil - etkilenen herhangi bir hedef.
Michael Johnston

@MichaelJohnston: IPv6 bugünlerde çoğu işletim sisteminin ayrılmaz bir parçasıdır, bu nedenle sık sık kapatılması sizi desteksiz bir durumda bırakır ...
Sander Steffann

Yanıtlar:


1

Bunun bir Apple sorunu olduğundan emin değilim, ancak bir Ruby sorunu. Görebilirsiniz Burada hata raporu.

Başlatma sırasında ipv6'ya özgü bir ana bilgisayar adı belirtmeyi deneyebilirsiniz.

Örneğin, TCPServer.new('::1', pivotal_tracker_address) kullanmana izin vermelisin curl belirtmeden -ipv6. Seni Ruby kodunu göremiyorum, bu yüzden bu sorunu çözecek mi emin değilim.

Bu yardımcı olur umarım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.