IPアドレスを取得してフィールドに保存したい

お世話になっております。

背景・実現したいこと

自分の IPアドレスを取得して、フィールド:IPアドレス:文字列(一行)に保存したいです。

IPアドレスの取得について – cybozu developer network

こちらを参考にいたしました。

問題点として2点あります。

1.自分のIPアドレスではなく、サイボウズ様のIPアドレスを取得してしまう。

2.フィールドに保存されない。

エラー情報 (開発者ツールのコンソール)

 エラーは特に表示されませんでした。

利用したソースコード

 (() => {
  “use strict”;
  kintone.events.on(‘app.record.detail.show’, async (event) => {
  const response = await kintone.proxy('https://ipinfo.io/json’,‘GET’,{},{})
  const ipAddress = JSON.parse(response[0]).ip;
  window.alert(ipAddress);
  event.record.IPアドレス.value = ipAddress;
 
  });
})();

保存する位置等ためしましたが、どうしても

うまくいきませんでした。

どうぞよろしくお願いいたします。

こちらのサイトを参考に試してみました。

https://www.sejuku.net/blog/104627 

もっとうまい方法がありそうですが、、、

一覧画面表示イベントでIPアドレスを取得するためのscriptを用意し、画面が表示されたタイミングでsessionStorageにIPアドレスが格納されます。

登録画面の表示イベントでsessionStorageに格納したIPアドレスを取り出します。

ロジックには書いてませんが、取り出したIPはフィールドにセットするなりして利用します。

もっと良い方法をご存じの方がおりましたら教えてください。

(function() {
    "use strict";
    kintone.events.on('app.record.index.show', async(event) => {
        const script = document.createElement('script');
        script.src = 'https://ipinfo.io?callback=callback';
        document.body.appendChild(script);
        document.body.removeChild(script);
        return event;
    });

    kintone.events.on('app.record.create.show', async(event) => {
        console.log(sessionStorage.getItem('IP'));
        return event;
    });
})();

function callback(data) {
  console.log(data.ip);
  sessionStorage.setItem('IP', data.ip);
}

ありがとうございます。

サイトを参考にさせていただきがら、

無事自分のIPアドレスを取得して、

フィールドに保存することができました。