import gradio as gr import requests, socket, json def get_server_ips(request: gr.Request): # 퍼블릭 IP public_ip = "알 수 없음" try: public_ip = requests.get("https://api.ipify.org", timeout=5).text.strip() except Exception as e: public_ip = f"조회 실패: {e}" # 프라이빗 IP private_ip = "알 수 없음" try: hostname = socket.gethostname() private_ip = socket.gethostbyname(hostname) except Exception as e: private_ip = f"조회 실패: {e}" info = { "public_ip": public_ip, "private_ip": private_ip, } # 보기 좋게 JSON 문자열로 반환 return json.dumps(info, ensure_ascii=False, indent=2) with gr.Blocks(title="Server IP Checker") as demo: gr.Markdown("# 서버 IP 조회") btn = gr.Button("서버 IP 확인") out = gr.Code(label="결과(JSON)", language="json") btn.click(fn=get_server_ips, inputs=None, outputs=out) if __name__ == "__main__": demo.launch()