PDA

Просмотр полной версии : алгоритм работы myipneighbors.com


zEr0r
30.11.2009, 23:53
собственно сабж. реально ли написать программу, работающую как этот сайт?

s0l_ir0n
01.12.2009, 00:01
посылай постгет запрос да и все.

zEr0r
01.12.2009, 00:07
Функция этого сайта такова: он получает доменное имя, например yandex.ru и возвращает все доменные имена, которые хранятся на серваке с айпи yandex.ru (87.250.251.11). Реализовать это не сложно, самое главное - алгоритм. А гетсом получить не получится, т.к. сайт накрылся.

s0l_ir0n
01.12.2009, 00:12
да тот же whois.domaintools.com умеет делать reverse-ip и вообще, достаточно в гугле вбить фразу и вылезет куча разных сайтов

zEr0r
01.12.2009, 00:15
проверил whois.domaintools.com не работает. я знаю несколько сайтов, которые все держатся на одном айпи, так вбил и они не показываются. Тем более меня интересует алгоритм =)

zEr0r
01.12.2009, 00:17
Да и кст в myipneighbors.com он не только выводил домены но и субдомены.

slesh
01.12.2009, 01:00
ппц народ вы жжете. вся эта мего чудо система работает на одном единственном сайт - поисковик от майкрософта. В данное время это bing.com

Алгоритм таков:
1) получаем по доменному имени его IP адрес
slesh.name -> 216.108.235.131
2) грузим http://www.bing.com/search?q=ip:216.108.235.131
и так все страници которые выдал он
3) парсим линки. вот и получаем реверс IP и почти все сайты так и пашут.

zEr0r
01.12.2009, 01:32
А если без бинга, есть известный алгоритм?

slesh
01.12.2009, 10:29
2 zEr0r а без бинга нельзя.
Сам подумай:
1) DNS прямой возможности не дает определить по IP -> DNS
2) DNS дает возможность по IP получить PTR запись, но эта запись есть не у всех и она привязана только к IP но не как не доменам.
3) Один и тотже домен может быть настрое на несколько IP по этому точно не определить
4) Домен крепится часто не на IP а на NS сервак. И чтобы узнать какие домены есть, нужно спросить у этого NS сервака.
Но у хостеров может быть несколько NS серваков и темболее что NS сервак не скажет какие у него домены есть.

А вот поисковики это знают, потому что когда они анализируют сайт, то запоминают его IP и доменное имя. И таким образом можно сделать выборку по IP. Но это предоставляет только bing

zEr0r
01.12.2009, 16:05
Спасибо!!!

mr.The
01.12.2009, 20:30
а без бинга нельзя.
myipneighbors работал ещё задолго до бинга. кагбэ.

0ldbi4
01.12.2009, 21:50
До бинга был другой поиск..

slesh
01.12.2009, 22:51
2 mr.The bing - это обновленный Live Search который в свою очередь являлся продолжением MSN Search. И по этому эта система досталось ему наследство от MSN

t04
02.12.2009, 02:08
готовая реализация на delphi
http://uasc.org.ua/2009/06/revip-pr-тиц-check/

zEr0r
03.12.2009, 19:30
Тестим:
http://forum.antichat.ru/showthread.php?p=1732025

x[0]x
07.12.2009, 05:02
http://packetstormsecurity.org/filedesc/bing-ip2hosts-0.1.tar-gz.html

#!/bin/bash
# bing-ip2hosts - Enumerate hostnames from Bing.com for an IP address.
# Bing.com is Microsoft's search engine which has an IP: search parameter.
#
# By Andrew Horton aka urbanadventurer, MorningStar Security
# www.morningstarsecurity.com
#
# Released at Kiwicon III (kiwicon.org), November 2009
# License: GPLv3
VERSION=0.1
ANIMATION=1

if [ -z "$1" ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
echo -e "Usage: $0 [--noanimation] <IP>
bing-ip2hosts ($VERSION)- Enumerate hostnames from Bing.com for an IP address.
Bing.com is Microsoft's search engine which has an IP: search parameter.

By Andrew Horton aka urbanadventurer, MorningStarSecurity
www.morningstarsecurity.com
"
exit 1
fi

if [ "$1" == "--noanimation" ]; then
ANIMATION=0
shift
ARGV=$*
fi

animation="/-\|"
IP="$1"
num_vhosts=10
page=0

all_hosts=`mktemp -p . -t ip2hosts.tmp.XXXXXX`

while [ "$num_vhosts" == 10 ]; do
if [ $ANIMATION == 1 ]; then
echo -en "${animation: $(( $page % 4 )) :1}"
fi
url="http://m.bing.com/search/search.aspx?A=webresults&Q=ip%3a$IP&D=Web&SI=$page""0"
out=`mktemp -p . -t ip2hosts.tmp.XXXXXX`
wget -q -O "$out" "$url"
vhosts=`cat "$out"| egrep -o "(<span class=\"c2\">)[^<]+(<\/)" | sed -e 's/<span class="c2">\|<\///g'`
num_vhosts=`echo "$vhosts" | wc -l`
echo -e "$vhosts" >> "$all_hosts"
rm -f "$out"
let page=$page+1
if [ $ANIMATION == 1 ]; then
echo -ne "\b"
fi
done

cat "$all_hosts" | cut -d '/' -f 1 | tr '[:upper:]' '[:lower:]' | sort | uniq
rm -f "$all_hosts"