23 lines
593 B
TypeScript
23 lines
593 B
TypeScript
|
import { useEffect, useState } from 'react'
|
||
|
|
||
|
export default function useIpAddress() {
|
||
|
const [ipAllowed, setIpAllowed] = useState(true)
|
||
|
|
||
|
useEffect(() => {
|
||
|
const checkIpLocation = async () => {
|
||
|
const response = await fetch(`https://www.cloudflare.com/cdn-cgi/trace`)
|
||
|
const parsedResponse = await response.text()
|
||
|
const ipLocation = parsedResponse.match(/loc=(.+)/)
|
||
|
const ipCountryCode = ipLocation ? ipLocation[1] : ''
|
||
|
|
||
|
if (ipCountryCode) {
|
||
|
setIpAllowed(ipCountryCode !== 'US')
|
||
|
}
|
||
|
}
|
||
|
|
||
|
checkIpLocation()
|
||
|
}, [])
|
||
|
|
||
|
return { ipAllowed }
|
||
|
}
|