質問: 現在JavaでWEBアプリケーションを作成していて、その途中にInstagram連携を挟んでいます。 (jInstagramというライブラリ使用) 商用環境は外部へのアクセスがファイアウォールによって守られているため、IPアドレスをもって基盤チームに申請して、いわゆる「穴あけ」をしなければなりません。 当方「api.instagram.com」は穴あけしていたのですが、どうやらInstagram APIの中でAccessTokenを取得する際に、 「www.instagram.com」へのアクセスもしているようで、そこでConnection Refusedとなってしまい疎通ができませんでした。 そこで、「www.instagram.com」にも穴をあけるためにIPアドレスを正引きしたのですが、 ・31.13.82.52 という結果になるサイトもあれば ・31.13.70.52 という検索結果になるサイトもあり、 ローカルからnslookupした場合は ・157.240.2.52 と表示されるなど、キリがないレベルで非常にばらつきがあり、どれを穴あけ申請として出してよいものかわかりかねています。 ちなみにそれぞれIPから逆引きすると ・31.13.82.52 → instagram-p3-shv-01-nrt1.fbcdn.net ・31.13.70.52 → instagram-p3-shv-01-lax3.fbcdn.net ・157.240.2.52 → instagram-p3-shv-01-ort2.fbcdn.net と、若干違うドメインが返ってきます。 そもそもこのようにばらつきが起きてしまう理由というところからわかっておらず大変恐縮なのですが、 もし「www.instragram.com」のIPアドレスの「全量」がわかる方法がありましたら、ご教授いただきたく思っております。 もしくは、「○○のIPアドレスは実際は不要で△△さえあれば大丈夫」といった可能性がありましたらその旨ご指摘いただけると非常に助かります。 すみませんが、ご回答お待ちしております。
回答: おそらくですが、Instagram のネットワークエンジニアでもない限り、全IPアドレスは知らないと思います(もしかすると彼らでもわからないかも)。 返却されている URI から見て、Facebook Contents Delivery Network のもとで動作しているのですから、アクセス時点でもっとも早い(負荷が軽く、ネットワーク的距離が小さい)サーバから結果が返ってきています。場合によっては動的にサーバを増減させて負荷対応しているでしょうから、瞬間的にしか全IPアドレスは分からないのではないかと思われます。 IPアドレスベースではない方法で穴を開けられないか、インフラチームと協議した方が良いかと思います。