2017-10-29 1 views
1

Ich habe ein Problem versucht (über einen Proxy) umleiten, in denen auf eine Website über einige http Abfragen gibt mir 1 Ergebnis, aber andere http Frage die identisch aussehen soll gib mir eine andere. Die Seite wird auf namecheap gehostet, so dass ich keine direkte Kontrolle über das, was sie bedient, habe (obwohl wir natürlich entschieden haben, welche Inhalte da waren).Warum gibt die Anfrage von Hostname 1 Website zurück, aber Anfrage von IP gibt einen anderen

Eine Möglichkeit, es zu repro, auf meinem lokalen Rechner curl verwenden ist:

  • auf die richtige minimale Seite geht: curl ftl.ltd -L
  • geht zu einem alten Prototyp vom ursprünglichen Besitzer: curl 198.187.29.248 -L

Wo: nslookup ftl.ltd Ausgänge 198.187.29.248

ich habe die Header in th verifiziert Die Anfragen sind identisch, 198.187.29.248 ist die Adresse, die von ftl.ltd aufgelöst wurde, und es wurde sogar versucht, die Header zu duplizieren, die ein Browser sendet. Soweit ich das beurteilen kann, gibt es absolut keinen Unterschied zwischen meiner Anfrage von ip und Anfrage von Hostname.

Offensichtlich habe ich etwas missverstanden, was damit zusammenhängt, wie diese Anfragen gelöst werden, und habe es nicht geschafft, das Richtige zu finden, um die Frage zu beantworten. Hat jemand mit Erfahrung darin eine Idee, wie das passieren kann?

Dank

Chris

+0

"Ich habe überprüft, dass die Header in den Anfragen identisch sind" das "Host" -Feld ist wahrscheinlich anders. – tkausl

+0

Keine Verwendung von 2 identischen Host-Werten macht noch keinen Unterschied. Ich versuchte beide zwingen den "Host" war ftl.ltd in beiden Anfragen und zwingt es zu "198.187.29.248". Beides ergab genau das gleiche Ergebnis. –

+0

Dies, zum Beispiel, wenn für die Header verwendet, führt das gleiche Ergebnis in beiden Fällen: - 'Host: ftl.ltd - Benutzer-Agent: curl/7.47.0 - akzeptieren: */* –

Antwort

0

Wenn Sie bereits die Überschriften über den Antrag geprüft hatte, ob die DNS-Einträge werden nur die gewünschte IP-Rückkehr, Sie dafür verwenden könnte:

dig @8.8.8.8 ftl.ltd +trace 

Überprüfen Sie auch für IPv6 nur für den Fall:

dig @8.8.8.8 AAAA ftl.ltd +trace 

Hier wird den DNS-Server von Google verwenden und so etwas wie dies am Ende zurückkehren soll:

ftl.ltd 1200  IN  A  198.187.29.248 

Die Idee, das ist zu überprüfen, dass Sie immer die gleichen Werte erhalten und dass wahrscheinlich zu verwerfen Sie zeigen zu alten Datensätzen, falls Sie Ihre Domain gerade von einem Host auf einen anderen verschoben haben und DNS repliziert wurden.

Das Ausführen der Anforderungen über IP oder Hostname und das Erzielen unterschiedlicher Ergebnisse für jeden einzelnen ist darauf zurückzuführen, dass die Server möglicherweise für die Unterstützung virtueller Hosts konfiguriert sind.

Das Verfahren zum Hosten von mehr als einer Domäne/Subdomäne auf einer einzelnen IP-Adresse/einem einzigen Host wird virtuelle Hosts genannt. Diese

bedeutet, dass Antwort auf eine Anfrage wie (mit www.ftl.ltd):

curl -v -L -H 'Host: www.ftl.ltd' 198.187.29.248 

kann aus diesen Anfragen unterschiedlich sein (nur FTL verwenden.ltd):

curl -v -L -H 'Host: ftl.ltd' 198.187.29.248 

Die Gründe dafür ist, dass es ein virtueller Host für andere für ftl.ltd sein könnte oder in vielen casese könnte es das gleiche vhost für beide sein, in der Regel ein Platzhalter verwendet wird: *.ftl.ltd

Wenn dabei die Anfrage direkt von IP:

curl -v -L 198.187.29.248 

Es wird die definierte default_server aber in gemeinsam genutzten Umgebungen Rückkehr ist etwas, das man normalerweise nicht, die Ihren Fall zu sein scheint, steuern, die Daher müssen Sie nur Hostnamen verwenden.

+0

Hallo @ nbari, Danke für deine Antwort. Leider bin ich mir ziemlich sicher, dass keines davon das Problem ist. Die Ausgrabung zeigt gute Ergebnisse, und wie gesagt, ich habe festgestellt, dass das Problem existiert, auch wenn ich einen Host-Header in der direkten IP-Anfrage erzwinge. Ihre letzten 3 Beispiele geben alle die fehlerhafte Website zurück. Ich denke, nächster Schritt wird sein, wireshark laden zu überprüfen, _exactly_ was gesendet wird, aber ich bin immer noch verblüfft! –

+0

wahrscheinlich gibt es keine 'vhost' für Ihre Website oder ist nicht konfiguriert – nbari

+0

Wow - mehr Forschung und es stellte sich heraus, dass Sie Recht hatten. Ich habe "ARC" verwendet, um meine Anfragen zu generieren, aber es scheint irgendwo zwischen dem Klicken in "ARC" (nachdem ich einen Host angegeben habe) zu klicken und mein Host wird von der IP-Adresse ersetzt. Wenn Sie Ihren Curl-Ansatz von einer Linux-Box aus verwenden, erhalten Sie das korrekte Ergebnis, also vermute ich, dass das Problem entweder in 'ARC' oder in Windows installiert ist. –

Verwandte Themen