Как докачивать файлы по протоколу SFTP

Однажды мне потребовалось забрать бэкап с одного правильного хостинга. Архив получился большой, примерно в 4 Гб. Скачал где-то 92%, и тут бац – интернет-провайдер подвел, соединение померло.

Я качал файл с помощью утилиты sftp, и она стала показывать stalled вместо прогресса скачивания. Жалко файл было до безумия, заново качать 4 Гб очень не хотелось. Ну должен же быть способ докачивать файлы по протоколу SFTP, сам протокол докачку поддерживает

Стал курить мануалы, и выяснил – надо было качать с помощью scp, а не sftp – эта утилита 100% поддерживает докачку, в отличие от sftp. Ну как говориться, поздно пить боржоми, файл-то уже на 92% скачан. Оказалось, что докачать его все-таки можно, только вместо sftp надо использовать lftp. Выглядело это примерно так:

lftp sftp://mylogin@host.tld
cd /path/to/backup
get -c backup.tgz

lftp смотрит текущую директорию на наличие недокачанного файла, смотрит, сколько байт скачалось и забирает только то, что не удалось скачать в первый раз

Как обойти защиту от хотлинкинга

Давненько я не писал чего-нибудь общественно-бесполезного. На одном из популярных форумов люди постят картинки с сайтов, которые не хотят, чтобы их смотрели где-то еще. А вбивать чужой урл и идти на страницу с картинкой иногда бывает лень. Поэтому, чтобы такой посмотреть, надо либо подделать реферер (с помощью какого-либо плагина к браузеру), либо воспользоваться моим новым сервисом просмотра картинок с защитой от хотлинкинга.

Работает это как прокси-сервер, скрипт забирает картинку и отдает ее тому, кто ввел капчу. Вроде несложно и кому-то может пригодиться. Кстати, вручную реферер вбивать не обязательно, скрипт попытается его вычислить. Но надежности ради я предусмотрел возможность добавления реферера вручную. Проверить можно хотя бы на этом примере.

Если найдете багу, просьба писать в камменты здесь или напрямую написать мне

З.Ы. Сервис абсолютно бесплатный

Кириллические домены и iDNS

Некоторые регистраторы с недавних пор предлагают зарегистрировать домены в зонах .рф, .ру, .ком, .нет, .орг и т.п. И есть же люди, которые таки хотят их использовать, несмотря на то, что корневые DNS-сервера вообще ничего не знают о этих доменных зонах.

Даже самый известный кириллический домен президент.рф и тот толком не распознается некоторыми серверами. Публичные DNS сервера Google о нем что-то знают:

dig xn--d1abbgf6aiiy.xn--p1ai @8.8.8.8

; <<>> DiG 9.6.1-P3 <<>> xn--d1abbgf6aiiy.xn--p1ai @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61712
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;xn--d1abbgf6aiiy.xn--p1ai. IN A

;; ANSWER SECTION:
xn--d1abbgf6aiiy.xn--p1ai. 564 IN A 195.208.24.91

;; Query time: 75 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec 1 17:29:40 2010
;; MSG SIZE rcvd: 59

А вот один из корневых серверов DNS не знает ничего:

dig xn--d1abbgf6aiiy.xn--p1ai @4.2.2.2

; <<>> DiG 9.6.1-P3 <<>> xn--d1abbgf6aiiy.xn--p1ai @4.2.2.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 20017
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;xn--d1abbgf6aiiy.xn--p1ai. IN A

;; Query time: 78 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Wed Dec 1 17:29:49 2010
;; MSG SIZE rcvd: 43

Что касается зон iDNS (.ком, .нет, .орг), так они вообще мало кому доступны. Регистраторы (Webnames.ru) например предлагают воспользоваться какой-то говнософтиной вроде iChat, чтобы ваш компьютер смог нормально работать с такими доменами. Вот кому надо чего-то скачивать и ставить себе? Мало кто будет это делать.

На самом деле этот говнософт никому не нужен. Все, что надо, чтобы ресолвились доменные зоны .ком, .нет и .орг, это всего лишь прописать у себя правильный iDNS сервер, вместо DNS провайдера. На idns.net есть файл (db.cache) с корневыми серверами iDNS, можно один из них использовать вместо DNS провайдера:

> cat /etc/resolv.conf
nameserver 64.62.142.131 # iDNS
nameserver 195.161.113.189 #iDNS
nameserver 120.50.44.141 #iDNS

Но на самый правильный способ я натолкнулся на блоге ihtiandr.info, надо интернет провайдерам настроить свои DNS-сервера примерно вот так, и тогда ни у кого не будет геморроя с кириллическими доменами.