Массовая проверка биткоин адресов на баланс

Довольно распространенным вопросом на этом форуме является: “У меня есть список из тысяч биткойн – адресов-как я могу проверить их баланс?” Предположительно, об этом спрашивают люди, которые все еще занимаются взломом мозговых оболочек и/или игрой с BrainFlayer (https://github.com/ryancdotorg/brainflayer). Или зачем еще вам нужно проверять текущие балансы для тысяч биткойн-адресов; не риторический вопрос, пожалуйста, расскажите мне о других потенциальных вариантах использования!

Я покажу вам метод, которым иногда пользуюсь сам.

Для записи я должен сказать, что один политкорректный ответ заключается в том, что сначала вам нужно установить полный узел биткойна, позволить ему загрузить полный блокчейн, а сверху добавить сервер Insight (https://insight.bitpay.com/) что вы можете быстро запросить запрос через API, а также написать и выполнить для него скрипт.

Теперь я предполагаю, что большинство людей ленивы и не хотят этого делать или просто не имеют необходимых технических навыков, поэтому позвольте мне продемонстрировать свою быструю и грязную работу, которая не требует установки или загрузки.

Вам просто нужна машина Linux.

Первое, что нам нужно сделать, это найти инсайт-серверы других людей, которые полностью открыты для интернета и отвечают на API-вызовы.

Простой способ найти некоторые из них-поиск Шодана (https://www.shodan.io/) используя эту фразу: “порт:3001 insight bitcoin”

При условии, что у вас есть зарегистрированная учетная запись Shodan (есть бесплатная регистрация – вам нужно зарегистрироваться для поиска конкретных номеров портов), вы найдете около 35 или около того таких серверов. Однако не все из них будут работать. Некоторые хиты являются ложными срабатываниями, некоторые не реагируют на стандартные API-вызовы, некоторые просто не работают и, возможно, половина или больше настроены на другие монеты, кроме BTC (будьте особенно осторожны с BCH, так как они дадут вам неправильный ответ, так как они принимают устаревшие биткойн-адреса).

Когда пишу эти строки, один удар, который выглядел многообещающим был IP: порт 18.141.53.197: 3001 (данный сервер может быть вниз, когда вы попробуете это, и пожалуйста не забивают отдельные IP-адреса!), Итак, первое, что я сделал, чтобы проверить этот URL в моем браузере (обратите внимание, что это должен быть HTTP, а не https, а нужный порт 3001):

http://18.141.53.197:3001/

Выглядит хорошо! Теперь нам нужно запросить его с помощью известного биткоина (BTC, а не BCH), в котором есть средства.

Я почти случайно выбрал этот адрес, так как он выглядит так, как будто он уже давно существует и хорошо финансируется:

https://www.blockchain.com/btc/address/39PVJ1sEVmFHJXjEG1D8kQa4Mk7f7jeMvA

Итак, для подтверждения того, что наш обнаруженный сервер Insight выполняет свою работу по назначению, давайте посмотрим на этот точный URL-адрес в нашем браузере:

http://18.141.53.197:3001/api/addr/39PVJ1sEVmFHJXjEG1D8kQa4Mk7f7jeMvA

Бинго! Много данных JSON. С быстрого и ручного взгляда баланс соответствует тому, что находится на blockchain.com тоже – определенно дроид, которого мы ищем.

Повторяйте этот шаг до тех пор, пока у вас не будет 3-5 отдельных IP-адресов, которые все работают и отображают нужные данные.

Наконец, для автоматизации я написал сценарий (далее ниже). Я хочу настоятельно рекомендовать вам не использовать точные IP-адреса, как в этом случае, иначе они не будут работать намного дольше. Измените IP-адреса в скрипте на те, которые вы обнаружили сами.

Скрипт читает текстовый файл с биткоин-адресами, поэтому сначала создайте такой файл, содержащий (например):

1MUz4VMYui5qY1mxUiG8BQ1Luv6tqkvail
17kbhNbkKkgNNJE23wvnLAbiddbqQ1eyjb

1QJpQuQ6PmFXoeKRnwjQrRZK9MMHpNBUlc

и назовите этот файл “addresses.txt”

(Обратите внимание, что список может содержать как устаревшие адреса [начиная с 1], так и адреса P2SH [начиная с 3], но не адреса P2WPKH/Bech32 [начиная с bc1] – если вы можете найти рабочее решение для адресов Bech32, пожалуйста, дайте мне знать.)

В этой же папке создайте файл под названием “checker” (например, с помощью nano):

#!/bin/bash

в то время как IFS= read-r line; do
line=${line//$’\n’/} #remove linebreak
line=${line//$’\r’/} #remove linebreak
balance=””
received=””
tx=””

# ЛП-адреса для BTC представление сервера, должны быть обновлены часто

ИС[0]=
ИС[1]=
ИС[2]=
ИС[3]=

индекс=$(($случайной % $размер))

[ -з “$Техас” ] && информация=$(через wget -qо- -Т 0.5 адресу http://$IP адрес:3001/API-интерфейс/адрес/$строка)
[и-Z “$Техас” ] && информация=$(через wget -qо- -Т 0.5 адресу http://$IP адрес:3001/API-интерфейс/адрес/$строка)
[и-Z “$Техас” ] && информация=$(через wget -qо- -Т 0.5 адресу http://$IP адрес:3001/API-интерфейс/адрес/$строка)
[и-Z “$Техас” ] && информация=$(через wget -qо- -Т 0.5 адресу http://$IP адрес:3001/API-интерфейс/адрес/$строка)
[и-Z “$Техас” ] && информация=$(через wget -qо- -Т 0.5 адресу http://$IP адрес:3001/API-интерфейс/адрес/$строка)

[и-Z “$Техас” ] && информация=$(через wget -qо- -Т 0.5 адресу http://$IP адрес:3001/API-интерфейс/адрес/долл)

баланс=$(Эхо “$инфо” | команда grep -Ро ‘”balanceSat”:\в K[0-9]+’)
получено=$(Эхо “$инфо” | команда grep -Ро ‘”totalReceivedSat”:\в K[0-9]+’)
ТХ=$(Эхо “$инфо” | команда grep -Ро ‘”txApperances”:\в K[0-9]+’)

Эхо“===================================”
Эхо “адрес: $линия”
Эхо “баланс: $баланс”
Эхо “получили: $получена”
Эхо “сделок: $Техас”

сделано

и выполните команду “chmod +x checker”, чтобы сделать его исполняемым.

Если вы не попросите об этом специально, я не буду комментировать или объяснять код дальше.

Все, что вам нужно знать, это то, что он выводит файл под названием “balances.csv”, содержащий все данные. Очень хорошая причина назвать output .csv заключается в том, что вы можете открыть его непосредственно с помощью Excel или любой другой программы электронных таблиц без какой-либо другой предварительной подготовки.

В конечном счете, когда у вас все готово: в том же каталоге список биткоин-адресов называется “addresses.txt” и исполняемый скрипт под названием “checker”, выполните эту команду:

./checker addresses.txt

и наблюдайте, как происходит волшебство в реальном времени. Если все сделано правильно, он должен вывести это в терминале

===================================
Адрес: 1MUz4VMYui5qY1mxUiG8BQ1Luv6tqkvail
баланс: 15818759376
получил: 4915056158983
сделки: 4222
===================================
адрес: 17kbhNbkKkgNNJE23wvnLAbiddbqQ1eyjb
баланс: 196303387
получил: 196303387
операций: 8
===================================
адрес: 1QJpQuQ6PmFXoeKRnwjQrRZK9MMHpNBUlc
баланс: 1913285
получил: 1913285
транзакции: 1

а файл “balances.csv” – попробуйте открыть его в Excel – должен содержать:

1MUz4VMYui5qY1mxUiG8BQ1Luv6tqkvail;15818759376;4915056158983;4222

17kbhNbkKkgNNJE23wvnLAbiddbqQ1eyjb;196303387;196303387;8
1qjpquq6pmfxoekrnwjqrzk9mmhpnbulc;1913285;1913285;1

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

Еще раз – не забивайте отдельные IP-адреса!

Комментарии? Вопросы?

Мы счастливы?