【Python + ccxt】IP制限のを利用したAPIの読み込みエラー「”code”:-2015」の原因と対処法

シェアする

Pythonとccxtを使ったAPI取得において、ある日突然以下のようなエラーコードが発生したのでその時の対処経緯を残します。
ある日いつも通りにAPIを利用したシステムのテストを進めていたところ、まだ何も変更していないにも関わらず突然エラーが発生します。

エラー内容は次のとおり

ccxt.base.errors.AuthenticationError: binance {"code":-2015,"msg":"Invalid API-key, IP, or permissions for action."}

日本語訳だとAPIキー、IPもしくはこのアクションの権限が無効、ということらしいです。
最初記述ミスを考えたのですが、そもそも動いている時から一度も関連部分の書き換えなんてしていないし、念の為保管してあるAPIキーと見比べても間違いなし。

スポンサーリンク

原因はキーの有効期限?

それで仕方ないから新しくキーを発行。
IP制限をかけるためにIP追加作業をしようと、IPを調べます。
IPの調べ方は以下サイトにアクセスするだけ。
あなたが現在インターネットに接続しているグローバルIPアドレス確認

上記サイトに表示されたIPアドレスが自分のものになります。
そこであることに気がつきました。

自分が以前登録した制限用のIPアドレスが違う・・・?

確かにこちらで設定したIPアドレスとは違うIPアドレスが以前のキーのIP制限に登録されています。

これはもしやと思い、試しにその古い方のIPアドレスを、今回作ったキーのIP制限に追加します。
全く同じエラー「”code”:-2015」が発生。

これが原因か。

最初キー自体に有効期限がついているものかとも思ったのですが、結局のところ制限IPアドレスが違ったという凡ミス。
そりゃ権限がないわけです。

で、なぜアドレスが変わったかというのは次の部分で説明。

グローバルIPは定期的に変わるらしい

ところで、自宅のPCのIPアドレスが勝手に変わったりするものでしょうか?
しらべたところ、どうやら勝手に変わる可能性はあるようです。

IPアドレスとは?グローバルIPアドレス、プライベートIPアドレス、関連する用語について解説しています。

いや変わるんかいっ!

これは知らなかった。
とにかく原因がわかってよかったです。

結局、復旧まで約30分。
これよりも謎InsufficientFundsエラーの方がもほど問題なので、大して気に掛かるエラーでもなかったですが、ネット上に情報があまりにもなかったので残している感じです。

ちなみにこのアドレス。
固定化する方法を模索しているのですが、これがまためんどくさいようで、サービスによっては固定不可のところもあるようですね。
ボクが利用しているソフトバンクの場合は、一応以下のように対処自体はできるみたいですが、それなりに専門的な知識がないと難しいみたいです。
パソコンのIPアドレスを固定したいのですが?

間違えるとネットに影響が出そうなので、この時点でぼくはお手上げ状態です。
この件は、何かしら別の手を考える必要がありそうですね。

Pythonを使っている背景

以前から以下のようなスプレッドシートを利用した仮想通貨の価格の自動取得とか色々やっていたのですが、今回はPythonを利用して本格的な取引までやってみようと考えたわけです。
【2021年最新版】超簡単、スプレッドシートで取引所の仮想通貨の価格管理する方法

そして、今更ながら、仮想通貨のアービトラージ、それも3通貨間のやつを実践してみようと独学でコードを組み始めました。
実際にやってみると、JSやPHP経験者にとっては思いのほかハードル自体は低く(いっても簡単なものしか組めないですが)、全くさわれないということはなかったです。
慣れるとこっちの方がわかりやすいまであるかもしれません。

ちなみに実際に組むところまではできていますが、利益は出ず。
やっぱり予想はしてましたが世の中そんなに甘くはないですね。

合わせて読みたい

あわせて読みたい

関連情報

関連情報

スポンサーリンク

シェアする

フォローする