Frudy
6k
2020-11-11 22:45:21 작성 2020-11-11 23:43:41 수정됨
9
975

클라이언트의 국가코드 알아내는 방법


한짤 요약


ㅡㅡㅡㅡㅡㅡ



제 크롬 브라우저는 언어설정이 영어로 되어있지만,

현제 저의 위치는 한국인데 네이버 회원가입에서 알아서 한국이 골라지더라구요.?


기존에는...

저희 회사에서 만들고있는 앱,

기존에 제가 만들었던 앱은

회원가입 절차에서 휴대폰인증이 있었는데

국가 목록 한 200개쯤 되는 select box에서 내 나라를 찾아야했었어요.


그래서 이번에 회원가입할 때 알아서 사용자 위치 알아내서 골라주면

사용자가 편할거같았어요.


"how to get nation in browser"

"sign up form nation code"

"get country javascript"

기타등등 구글링 계속 해본결과


https://stackoverflow.com/questions/39213855/getting-the-users-region-with-navigator-language

이런 스택오버플로우 글이 있었으며

저 API는 솔루션중 하나입니다.


응답헤더에 Access-Control-Allow-Origin이 *로 설정되어있기 때문에,

CORS걱정안하고 호출하셔도 되요.


이걸로 사용자 회원가입 절차는 물론이고, 기타 휴대폰등록이 필요한 모든 서비스에서

사용자가 편하겠네요.


https://www.freeformatter.com/iso-country-list-html-select.html

저거 찾다가 어쩌다 얻어걸린건데 음 필요하신분은 참고하세요.


좀 더 생각해보니, 다국어를 지원하는 웹사이트에서라면

저걸로 알아서 기본 언어설정을 바꿀 수 있겠네요.

그전에는 일단 무조건 영어로 띄워놓고 거기서 고르도록했었어요.


아우 근데 1시간을 넘게 찾아도 

KR이랑 +82를 같이 주는 무료 API가 없네요.

KR주는 무료 API는 저거포함해서 2개를 찾았는데..

+82까지 같이 주는 API는 다 유료네요 ㅠㅠㅠ


KR만 얻어서 82는 그냥 구해야겠어요..

1
  • 댓글 9

  • 친슈
    42
    2020-11-12 10:20:48

    좋은 팁 감사합니다

  • worldblue
    809
    2020-11-12 22:20:47 작성 2020-11-12 22:33:35 수정됨

    팁 감사드립니다.


    혹시 브라우저내에 navigator 기능이 있음에도 위 처럼 국가코드를 알아내야하는 이유가 있었던건가여?

     navigator를 쓰지못했던 이유라던가

  • Frudy
    6k
    2020-11-12 23:15:29

    MDN Geo뭐시기 API를 봤는데요

    나비게이터로 국가코드를 알아낼수가 없었어요.

    대신 브라우저 언어설정은 알아낼수있었어요.

  • 밤아홉시
    420
    2020-11-13 11:57:28

    Free for non-commercial use입니다. Usage limits에 We do not allow commercial use of this endpoint. 라고 분명히 기재되어 있어요. (참고 : https://ip-api.com/docs/api:json)

  • Frudy
    6k
    2020-11-13 13:01:04

    아, 제가쓰는건 다른API이긴한데 그것도 상업용도로 쓸수있는지 봐야겠네요


    감사합니다

  • worldblue
    809
    2020-11-13 16:45:27

    Frudy님 

    혹시 내부망이라 외부와 연결이 안된다면  저 국가코드라는건 어떻게 알아낼 수 있을까요?

  • Frudy
    6k
    2020-11-13 18:25:07

    ???

    외부와 연결이안되면

    저 API호출되는 웹페이지로 들어올수는있나요?


    전 그저 회원가입페이지를 만들고,

    사용자가 제 회원가입페이지 URL로 요청해서

    해당 웹페이지가 사용자의 웹브라우저에 로딩되면

    사용자의 IP주소를 기반으로 국가를 알아낼 뿐이에요.

  • youngyoung
    1k
    2020-11-15 22:01:16

    브라우저 언어설정이면 php의 경우  $_SERVER['HTTP_ACCEPT_LANGUAGE'] 면 됩니다.

    가끔 안맞는 경우도 있지만 대부분 언어설정 저걸로 받아집니다 


  • worldblue
    809
    2020-11-16 14:33:35

    Frudy 님


    제가 질문을 잘못드렸네요

    생각해보니 그런것 같습니다.


    감사합니다^^

  • 로그인을 하시면 댓글 을 등록할 수 있습니다.