แถบอเนกประสงค์ของ Google chrome อนุญาตให้ใช้การค้นหาของ Google เท่านั้น


2

สำหรับอินพุตที่กำหนดในแถบ url:

0.0.0.0:4567/login/re-welcome/

หรือ

http://0.0.0.0:4567/login/re-welcome/

แถบอเนกประสงค์ของ Google เน้นเฉพาะตัวเลือกเดียวคือการค้นหาโดย Google และไม่ให้ฉันไปที่ URL ที่ฉันระบุ ฉันได้จัดให้มีสกรีนช็อตที่เหมาะสมซึ่งแสดงว่ามีการเลือกเพียงรายการเดียวสำหรับอินพุตของฉันและเมื่อกด Enter จะเปลี่ยนเส้นทางไปยังการค้นหาของ Google โดยตรง

สิ่งนี้ไม่เคยเกิดขึ้นมาก่อนและแม้หลังจากล้างประวัติเบราว์เซอร์แล้วมันก็ยังทำงานได้ตามปกติ

ฉันใช้ Mac OSX 10.10.2 และ Chrome รุ่น 40.0.2214.111 (64 บิต)

มีวิธีแก้ไขปัญหานี้หรือไม่? สิ่งที่สับสนคือมันไม่เคยทำเช่นนี้ ... ดังนั้นฉันสงสัยว่ามีบางสิ่งที่ฉันมองเห็น

เซิร์ฟเวอร์พ่อค้าคนกลาง

สกรีนช็อตของพฤติกรรมแถบอเนกประสงค์


2
คุณคาดหวังว่าจะเกิดอะไรขึ้น 0.0.0.0ไม่ใช่ที่อยู่ IP ที่ถูกต้องในการนำทาง Chrome รู้สิ่งนี้จึงอนุญาตให้คุณทำในสิ่งที่รู้ว่าใช้ได้สำหรับอินพุตที่กำหนดเท่านั้น (เช่นการค้นหา)
หนัก

บางทีฉันต้องชี้แจงฉันใช้เซิร์ฟเวอร์ในพื้นที่และมันใช้ได้กับทุกคนในสำนักงานและมันก็ใช้งานได้สำหรับฉัน แต่ตอนนี้ฉันต้องใช้localhost: 4567
christoshrousis

ตกลงว่าไม่ได้เปลี่ยนข้อเท็จจริงที่ว่าคุณไม่สามารถนำทางได้http://0.0.0.0แต่ไม่ใช่ IP ที่ถูกต้อง คุณอาจหมายถึงใช้http://127.0.0.1หรือhttp://<YOUR_IP_HERE>?
หนัก

ทุกคนในสำนักงานใช้อะไร
หนัก

ตามภาพหน้าจอเพิ่มเติมที่ให้มาฉันต้องการใช้ 0.0.0.0 และทุกคนในสำนักงานใช้เหมือนกันหรือผู้พัฒนา ruby ​​อื่น ๆ เมื่อใช้เซิร์ฟเวอร์ของตัวเองในเครื่องของตัวเอง
christoshrousis

คำตอบ:


3

คุณไม่ควรใช้ 0.0.0.0 ด้วยวิธีนี้ แม้ว่ามันจะได้ผล เหตุผล: คุณต้องเผชิญกับปัญหา

การใช้ 0.0.0.0 สำหรับการสื่อสาร HTTP เป็นการละเมิดมาตรฐานซึ่งจัดประเภท 0.0.0.0 อย่างเป็นทางการว่าเป็นที่อยู่ "ใช้ไม่ได้" คำว่า "ที่อยู่ที่ไม่สามารถใช้งานได้" ใน IPv4 หมายถึงที่อยู่แรกและที่อยู่สุดท้ายของเครือข่ายหรือเครือข่ายย่อยใด ๆ 0.0.0.0 เป็นที่อยู่แรกของทุกเครือข่ายย่อย IPv4 ที่เป็นส่วนหนึ่งของ

มีการพูดถึงที่อยู่แรกที่ได้รับการปฏิบัติเป็นพิเศษ (โดยใช้วิธีต่างๆในการระบุเอกสาร) อย่างน้อย RFC 894, RFC 919, RFC 1122 และ RFC 3021 เหตุผลพื้นฐานที่ประกาศว่า "ใช้ไม่ได้" ก็คือมันเป็น ถือว่าเป็นที่อยู่ออกอากาศ ตั้งแต่นั้นมามาตรฐาน IPv4 ที่ใช้กันทั่วไปก็คือที่อยู่สุดท้ายคือที่อยู่การออกอากาศ แต่ยังคงเป็นที่อยู่แรกที่ได้รับการยอมรับอย่างกว้างขวางว่าเป็น "ใช้ไม่ได้" ฉันขอโทษ @harrymc ที่ฉันต้องไม่เห็นด้วยกับความคิดเห็นตามศัพท์แสง แม้ว่าจะสามารถใช้ที่อยู่ทางเทคนิคได้และเหมาะสมกับคำจำกัดความของคำว่า "ใช้งานได้" แต่ก็มีข้อกำหนดทางเทคนิคบางอย่างในโลกเครือข่ายของ "ที่อยู่ที่ใช้งานได้" และ "ที่อยู่ที่ใช้ไม่ได้" ขึ้นอยู่กับศัพท์แสงมาตรฐานอุตสาหกรรมนี้ 0.0.0

อาจไม่มีเหตุผลทางเทคนิคว่าทำไมที่อยู่แรกต้องไม่สามารถใช้งานได้ นี่ไม่ใช่ผลลัพธ์ของข้อ จำกัด ที่บังคับโดยการ จำกัด จำนวนที่สามารถใส่ได้จำนวนภายในกลุ่ม อย่างไรก็ตามมันเป็นมาตรฐานโดยฉันทามติ ถูกหรือผิดนั่นคือความจริง คนได้รับการฝึกฝนให้หลีกเลี่ยงการใช้ที่อยู่นี้ ดังนั้นซอฟต์แวร์หลายชิ้นอาจตรวจสอบเพื่อให้แน่ใจว่ากฎมาตรฐานนี้ไม่ได้ถูกละเมิด

หากคุณใช้เวลาพอสมควรในการพัฒนาระบบเครือข่ายขั้นสูงคุณจะพบว่าระบบเครือข่ายที่ทันสมัยจำนวนมากได้รับการออกแบบโดยคำนึงถึงความสอดคล้องกัน ดังนั้นฉันทามติเป็นสิ่งสำคัญ

หากคุณต้องการพยายามที่จะละเมิดกฎนี้คุณสามารถลอง มีซอฟต์แวร์ "โอเพ่นซอร์ส" มากมายที่คุณสามารถปรับให้เข้ากับความต้องการของคุณได้ อย่างไรก็ตามหากคุณละเมิดมาตรฐานทั่วไปอย่างรู้เท่าทัน (หรือปฏิเสธที่จะปรับตัวหลังจากเรียนรู้ว่าคุณละเมิดมาตรฐานทั่วไปโดยไม่รู้ตัว) คุณไม่ควรแปลกใจหากคุณประสบปัญหาบางอย่าง ตัวอย่างเช่น: หากผู้เขียนซอฟต์แวร์การท่องเว็บที่สำคัญไม่ถือว่าที่อยู่ "ใช้ไม่ได้" เช่นที่อยู่ปกติ

นอกจากจะใช้ไม่ได้แล้ว 0.0.0.0 จะเต็มไปด้วยเลขศูนย์และทำให้มันดูคล้ายกันมากในแนวคิดของ "::" ซึ่งเป็นที่อยู่อย่างเป็นทางการ "ที่ไม่ได้ระบุ" ใน IPv6 ดังนั้นการรักษา 0.0.0.0 เป็นที่อยู่ "ที่ไม่ได้ระบุ" ใน IPv4 นั้นค่อนข้างสมเหตุสมผลและสอดคล้องกับคำสั่ง netstat (โดยเฉพาะกับ "netstat -na") ทำสิ่งต่าง ๆ (ทั้ง Unix และ Microsoft Windows)

ในแง่นั้นการใช้งาน DHCP ที่ 0.0.0.0 นั้นสมเหตุสมผลมาก ก่อนที่จะกำหนดที่อยู่คอมพิวเตอร์กำลังใช้ที่อยู่ "ไม่ระบุ" จริงๆแล้วสิ่งที่ฉันสงสัยว่าคอมพิวเตอร์กำลังทำอยู่นั้นอาศัยที่อยู่ MAC ของเฟรม (เลเยอร์ 2: อีเธอร์เน็ต / Wi-Fi) แทนที่อยู่ IPv4 (เลเยอร์ 3) เพื่อให้คอมพิวเตอร์ที่ถูกต้องได้รับที่อยู่ที่ถูกต้อง

บางคนอาจคิดว่า 0.0.0.0 หมายถึงแนวคิดของที่อยู่ "ใด ๆ " ซึ่งอาจเป็นเพราะ "netsat -na" ดูเหมือนจะทำเช่นนั้น หากคุณมีความคิดเกี่ยวกับสิ่งที่คุณต้องการให้หมายถึง 0.0.0.0 ให้รู้ว่ามีความคิดอื่น ๆ อยู่บ้างซึ่งค่อนข้างแพร่หลาย ความขัดแย้งและปัญหาอื่น ๆ คาดว่าจะลองใช้วิธีอื่น

เมื่อพูดถึง netstat คุณอาจพบว่า "netstat -nr" แสดงรายการตารางเส้นทางสำหรับ "127.0.0.0/8" หรือ "127.0.0.1/8" (IPv4 subnet mask 255.255.255.0) และที่อยู่เครือข่ายอื่น ๆ ที่คุณมี กำหนดให้กับการ์ดเครือข่ายของคุณ แต่ไม่ใช่ "0.0.0.0/32" (ซับเน็ตมาสก์ IPv4 255.255.255.255) แม้ว่าคุณอาจเห็นว่า "0.0.0.0/0" (IPv4 subnet mask 0.0.0.0) ถูกตั้งค่าให้ส่งทราฟฟิกไปยังเกตเวย์เริ่มต้นของ IPv4 ของคุณ นั่นเป็นเครือข่ายย่อยมาตรฐานและเส้นทางในที่ทำงาน หากคุณยังไม่ได้รับการฝึกอบรมเกี่ยวกับเทคนิคดังกล่าวคุณควรหลีกเลี่ยงการคิดค้นความคาดหวังส่วนตัวใหม่ ๆ สำหรับวิธีการทำงานของ 0.0.0.0

ท้ายที่สุดเพื่อพูดถึง Google Omnibox: ฉันไม่รู้ว่ามันทำงานอย่างไร อย่างไรก็ตามการใช้งานใด ๆ ที่อาศัย 0.0.0.0 นั้นไม่ได้มาตรฐานดังนั้นฉันจึงคาดการณ์ว่าผู้พัฒนาซอฟต์แวร์ (Google ในกรณีนี้) อาจทำการเปลี่ยนแปลงได้ตลอดเวลา และหากพวกเขาทำการเปลี่ยนแปลงในเวลาใด ๆ พวกเขามีแนวโน้มที่จะทำเครื่องหมายเฉพาะจำนวนคนที่ไม่มีนัยสำคัญทางสถิติ ดังนั้นทางออกที่ดีที่สุดของคุณคือไม่ต้องพึ่งพาวิธีพิเศษใด ๆ ที่ซอฟต์แวร์ใช้กับที่อยู่ 0.0.0.0 ในปัจจุบัน อาจเป็นเพราะ Google กำลังค้นหาข้อความเพราะ Google กำลังทำการป้อนข้อมูล (สิ่งที่คุณพิมพ์ในแถบที่อยู่) เป็นข้อความที่ไม่ถูกต้อง - สิ่งที่ Google ไม่ได้รับรู้ว่าเป็นที่อยู่ที่ถูกต้อง นั่นเป็นสิ่งที่ฉันคาดหวังจากเว็บเบราว์เซอร์จำนวนมากที่ต้องทำ

ฉันเข้าใจความเจ็บปวดที่คุณอาจรู้สึกเกี่ยวกับ "มันใช้งานได้มาก่อนแล้วทำไมมันถึงแตก" นั่นเป็นที่เข้าใจ อาจเป็นไปได้ว่าวิธีการก่อนหน้านี้ของการทำสิ่งที่แตก นั่นคือสิ่งที่คุณเสี่ยงเมื่อทำสิ่งที่ไม่ได้มาตรฐาน ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้เนื่องจากไม่มีพฤติกรรมการทำงานที่ชัดเจนโดยมาตรฐานสากลใด ๆ พฤติกรรม "แบบกำหนดเอง" ("ที่ไม่ได้มาตรฐาน") จึงสามารถหยุดได้ตลอดเวลา ทางออกที่ดีที่สุดของคุณคือการใช้เทคนิคมาตรฐานที่กำหนดพฤติกรรมไว้อย่างชัดเจน

หากคุณต้องการที่อยู่เครือข่ายที่ใช้งานง่ายคุณสามารถใช้http://10.1.1.1หรือชื่อ DNS ส่วนตัว (เช่นhttp: // llll (aka http: // LLLL )) มีข้อโต้แย้งว่าทำไมบางราก DNS ส่วนตัวที่ไม่พึงประสงค์ก็มีแนวโน้มที่จะทำงานที่มีปัญหาน้อยกว่าการพยายามที่จะพึ่งพา แต่http://0.0.0.0 หรือคุณสามารถใช้http: // l (สำหรับเว็บเซิร์ฟเวอร์ในพื้นที่) และใช้ไฟล์โฮสต์ของคุณซึ่งคุณอาจพบว่าใช้งานได้น้อยกว่าการตั้งค่า DNS ที่กำหนดเองอย่างน้อยสำหรับโซลูชันขนาดเล็กระยะสั้นอย่างรวดเร็ว วิธีแก้ปัญหาเหล่านั้นอาจจะทำงานได้ดีกว่าดำเนินการต่อไปเพื่อตีหัวของคุณกับกำแพงในการพยายามที่จะบังคับให้โลกในการรักษาhttp://0.0.0.0วิธีที่คุณต้องการ

หากคุณต้องการวิธีแก้ปัญหาในการทำงานกับเว็บเบราว์เซอร์ให้ทำตามคำแนะนำจากความคิดเห็นของเฮดดี้เพื่อลองhttp://127.0.0.1หรือที่อยู่ IP ที่ NIC ของคุณใช้ คุณสามารถลองhttp: // localhost (แต่เครื่องอื่น ๆ เมื่อพยายามเชื่อมต่อกับเว็บเซิร์ฟเวอร์ควรใช้ที่อยู่ IP อื่นที่ไม่ใช่http://127.0.0.1หรือhttp: // localhostหรือhttp: // [:: ] )

หากคุณใช้งาน 0.0.0.0 อย่างต่อเนื่องคุณจะพบปัญหาเหล่านี้:

  • มันอาจจะหรืออาจจะไม่ทำงานในวันนี้
  • ผู้คนจะรู้สึกหงุดหงิดกับการพยายามช่วยเหลือคุณเนื่องจากคุณละเมิดมาตรฐานที่คนอื่น ๆ ยอมรับ
  • แม้ว่าคุณจะทำสิ่งต่าง ๆ ให้ทำงานได้ในวันนี้ แต่มันอาจจะพังในอนาคตถ้าคุณทำบางอย่างเช่นปรับปรุงซอฟต์แวร์บางส่วน การปรับปรุงอาจตัดสินใจที่จะเริ่มต้นการรักษา 0.0.0.0 เป็นที่อยู่ที่ไม่ปกติ

หากคุณยินดีที่จะแก้ไขปัญหาใด ๆ รวมถึงการปรับซอร์สโค้ดก็ไม่มีใครที่นี่พยายามที่จะหยุดคุณ อย่าคาดหวังว่าคนอื่นจะช่วยเพราะพวกเขาอาจเห็นความพยายามทั้งหมดเป็นการเสียเวลา (เมื่อเทียบกับทางเลือกที่ดีกว่าซึ่งก็คือไปตามมาตรฐาน) ในระยะยาวมีวิธีการอื่น ๆ ที่จะต้องใช้ความพยายามน้อยกว่าการพยายามกำหนดพฤติกรรมบางอย่างไปยังที่อยู่ 0.0.0.0


1

จากวิกิพีเดียเกี่ยวกับ0.0.0.0 :

ใน Internet Protocol รุ่น 4 ที่อยู่ 0.0.0.0 เป็น meta-address ที่ไม่สามารถกำหนดเส้นทางได้ซึ่งใช้เพื่อกำหนดเป้าหมายที่ไม่ถูกต้องไม่ทราบหรือไม่เกี่ยวข้อง การให้ความหมายพิเศษกับชิ้นส่วนของข้อมูลที่ไม่ถูกต้องเป็นแอปพลิเคชันของการส่งสัญญาณในวง

ใช้รวมถึง:

  • ที่อยู่ที่โฮสต์อ้างว่าเป็นของตัวเองเมื่อยังไม่ได้รับที่อยู่ เช่นเมื่อส่งแพ็กเก็ต DHCPDISCOVER เริ่มต้นเมื่อใช้ DHCP
  • ที่อยู่ที่โฮสต์กำหนดให้กับตัวเองเมื่อการร้องขอที่อยู่ผ่าน DHCP ล้มเหลวหาก IP สแต็คของโฮสต์รองรับสิ่งนี้ การใช้งานนี้ถูกแทนที่ด้วยกลไก APIPA ในระบบปฏิบัติการที่ทันสมัย
  • วิธีระบุ "IPv4-host ใด ๆ เลย" มันถูกใช้ในวิธีนี้เมื่อระบุเส้นทางเริ่มต้น
  • วิธีระบุอย่างชัดเจนว่าเป้าหมายไม่พร้อมใช้งาน
  • วิธีการระบุ "ที่อยู่ IPv4 ใด ๆ เลย" มันถูกใช้ในลักษณะนี้เมื่อกำหนดค่าเซิร์ฟเวอร์ (เช่นเมื่อเชื่อมซ็อกเก็ตการฟัง) สิ่งนี้เป็นที่รู้จักกันในนามโปรแกรมเมอร์ TCP ว่า INADDR_ANY (ผูก (2) เชื่อมโยงกับที่อยู่ไม่ใช่ส่วนต่อประสาน)

ใน RFC 1122 สัญกรณ์ "{0,0}" ถูกใช้เพื่อกำหนด 0.0.0.0/x (x เป็นอะไรก็ได้ตั้งแต่ 0 ถึง 32)
อ้างถึง:

{0, 0} โฮสต์นี้ในเครือข่ายนี้ ต้องไม่ถูกส่งยกเว้นเป็นแหล่งที่อยู่ซึ่งเป็นส่วนหนึ่งของขั้นตอนการเริ่มต้นโดยโฮสต์จะเรียนรู้ที่อยู่ IP ของตนเอง

ดังนั้นที่อยู่ 0.0.0.0 จึงสามารถใช้งานได้แต่ไม่แนะนำให้ใช้เนื่องจากอาจรบกวนการทำงานที่ถูกต้องของอุปกรณ์เครือข่ายอื่นที่ค้นหาที่อยู่ IP ของตนเองในเครือข่าย ในฐานะที่เป็น RFC 1122 รัฐมันเป็นไปได้ที่จะใช้มันเป็นที่อยู่แหล่งที่มา แต่ก็ไม่ควรที่จะใช้เป็นที่อยู่ปลายทาง

ในกรณีของคุณคุณใช้ที่อยู่ 0.0.0.0 แทน Localhost หรือ 127.0.0.1 สิ่งนี้อาจใช้งานได้ในวันนี้ แต่อาจถูกทำลายโดยการอัพเดทผลิตภัณฑ์ซอฟต์แวร์ที่คุณใช้ในอนาคต

เป็นตัวอย่างที่ดีของที่นี่คือ Chrome ที่มีการปรับปรุงล่าสุดได้มือไว 0.0.0.0 http://1.2.3เป็นที่อยู่ผิดกฎหมายที่ควรจะสืบค้นมากกว่าใช้ข้อผิดพลาดเช่นเดียวกับเมื่อระบุ

ข้อผิดพลาดนี้อธิบายไว้ใน Chromium Issue 428046: ไม่สามารถเข้าถึง 0.0.0.0โดยที่ความคิดเห็นล่าสุดจาก 29 มกราคม 2015 โดย pkasting@chromium.org พูดว่า:

เพื่อหลีกเลี่ยงการโดนทางอีเมลฉันกำลังปิดความคิดเห็นเกี่ยวกับข้อผิดพลาดนี้ ฉันได้ตกลงไปแล้วว่าเราจำเป็นต้องแก้ไขดังนั้นไม่จำเป็นต้องมีข้อโต้แย้งเพิ่มเติมที่พยายามโน้มน้าวให้ฉันแก้ไข :)

ดังนั้นคุณเพียงแค่ต้องรอการแก้ไขเพื่อหาทางไปสู่การเปิดตัว Chrome ในระหว่างนี้คุณสามารถ:

  • ใช้ localhost แทนหรือ 127.0.0.1
  • เพิ่มชื่อย่อในไฟล์โฮสต์ซึ่งอาจสั้นกว่า 0.0.0.0 ได้
  • ใช้เบราว์เซอร์อื่น

1

แม้ว่าคุณจะต้องใส่ใจกับอีกสองคำตอบที่บอกว่าทำไมการใช้ 0.0.0.0 เป็นความคิดที่ไม่ดีคุณยังสามารถเข้าถึงได้โดยใช้แผงควบคุมสำหรับนักพัฒนาซอฟต์แวร์ใน Chrome

เปิดคอนโซลและประเภท

window.location.href="http://0.0.0.0:4567/login/re-welcome/"

Chrome ควรนำทางไปยังที่อยู่ที่เหมาะสม

หรือ (@TOOGAM) คุณสามารถป้อนจาวาสคริปต์นี้ลงในแถบที่อยู่ได้โดยตรง:

javascript:window.location.href="http://0.0.0.0:4567/login/re-welcome/"

ดูเหมือนว่าการอ้างอิงไปยัง DOM ซึ่งหมายความว่าสามารถทำได้ผ่าน JavaScript (อาจใส่ในแถบที่อยู่: javascript: window.location.href = " 0.0.0.0 "; (รวมเซมิโคลอน)) อีกทางเลือกหนึ่งคือการใส่ลงในบุ๊คมาร์ค ยังคงไม่ง่ายเหมือนการพิมพ์ LLLL หรือ 0.0.0.0 ลงในแถบที่อยู่ แต่ฉันมอบอุปกรณ์ประกอบฉากให้กับ Tyler Hou สำหรับงานที่ยอดเยี่ยมในการมีคำตอบเพิ่มเติมของเขา
TOOGAM
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.