{"id":22913945,"url":"https://github.com/hojsong/ft_ping","last_synced_at":"2026-04-09T02:31:32.624Z","repository":{"id":247186018,"uuid":"771375076","full_name":"hojsong/ft_ping","owner":"hojsong","description":"outer-circle-ft_ping","archived":false,"fork":false,"pushed_at":"2024-07-07T05:52:40.000Z","size":44,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T11:52:03.192Z","etag":null,"topics":["c","docker","linux","macos","makefile","ping","shellscript","socket-programming"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hojsong.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-13T07:24:05.000Z","updated_at":"2024-11-29T06:25:17.000Z","dependencies_parsed_at":"2024-07-07T08:03:15.889Z","dependency_job_id":null,"html_url":"https://github.com/hojsong/ft_ping","commit_stats":null,"previous_names":["hojsong/ft_ping"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hojsong/ft_ping","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hojsong%2Fft_ping","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hojsong%2Fft_ping/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hojsong%2Fft_ping/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hojsong%2Fft_ping/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hojsong","download_url":"https://codeload.github.com/hojsong/ft_ping/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hojsong%2Fft_ping/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31582599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","docker","linux","macos","makefile","ping","shellscript","socket-programming"],"created_at":"2024-12-14T05:12:36.303Z","updated_at":"2026-04-09T02:31:32.601Z","avatar_url":"https://github.com/hojsong.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ft_ping\n\n\nThe ft_ping project is a custom implementation of the ping command, which is widely used to test the reachability of a host on an Internet Protocol (IP) network. This project is part of the 42 School curriculum, designed to help students understand the basics of network programming and system functions.\n\nDescription\nThis implementation of ping uses various system and network functions to send ICMP \"echo request\" packets to a host and listen for ICMP \"echo reply\" packets. It measures the round-trip time for messages sent from the originating host to a destination computer.\n\nKey Functions\ngettimeofday: Gets the current time.\nexit: Exits the program.\ninet_ntop / inet_pton: Converts IP addresses from binary to text form and vice versa.\nntohs / htons: Converts values between network byte order and host byte order.\nsignal / alarm / usleep: Manages signals and process sleeping.\nsocket / setsockopt / close: Manages socket operations.\nsendto / recvmsg: Sends and receives messages on a socket.\ngetpid / getuid: Gets process and user IDs.\ngetaddrinfo / getnameinfo / freeaddrinfo: Manages address information.\nstrerror / gai_strerror: Converts error codes to human-readable strings.\nprintf and its family: Outputs data.\nUsage\nTo use ft_ping, compile the project using make, which generates the ft_ping executable. Then, run the executable with a target host as an argument.\n\nBasic Usage\nbash\n\n\n./ft_ping [host]\nVerbose Mode\nTo enable verbose output, use the -v option.\n\nbash\n\n\n./ft_ping -v [host]\nTesting with Docker\nYou can test the ft_ping project using Docker with Debian 11. Simply run the following shell script:\n\nbash\n\n\n./myScript.sh\nThis script will set up a Docker container with Debian 11 for you to test the project in an isolated environment.\n\nCompiling for Different Operating Systems\nThe Makefile provided allows for compiling the project for different operating systems, including MacOS and Linux.\n\nMacOS Compilation\nTo compile for MacOS, use the following command:\n\nbash\n\n\nmake macos\nLinux Compilation\nTo compile for Linux, use the following command:\n\nbash\n\n\nmake linux\nThis ensures that the project can be compiled and run on different platforms without any issues.\n\nLicense\nThis project is licensed under the MIT License - see the LICENSE.md file for details.\n\nThis README.md file now includes the additional information about testing with Docker using Debian 11 and compiling for different operating systems using the Makefile.\n\n\n\nkr -------------------------------------------------------------------\n\nft_ping\nft_ping 프로젝트는 ping 명령어의 사용자 정의 구현입니다. ping은 인터넷 프로토콜(IP) 네트워크에서 호스트의 도달 가능성을 테스트하는 데 널리 사용됩니다. 이 프로젝트는 42 School 커리큘럼의 일부로, 학생들이 네트워크 프로그래밍과 시스템 함수의 기초를 이해하도록 돕기 위해 설계되었습니다.\n\n설명\n이 ping 구현은 다양한 시스템 및 네트워크 함수를 사용하여 ICMP \"에코 요청\" 패킷을 호스트로 보내고 ICMP \"에코 응답\" 패킷을 수신합니다. 발신 호스트에서 대상 컴퓨터로 보낸 메시지의 왕복 시간을 측정합니다.\n\n주요 함수\n\ngettimeofday: 현재 시간을 가져옵니다.\n\nexit: 프로그램을 종료합니다.\n\ninet_ntop / inet_pton: IP 주소를 이진 형식과 텍스트 형식 사이에서 변환합니다.\n\nntohs / htons: 네트워크 바이트 순서와 호스트 바이트 순서 사이에서 값을 변환합니다.\n\nsignal / alarm / usleep: 신호와 프로세스 슬립을 관리합니다.\n\nsocket / setsockopt / close: 소켓 작업을 관리합니다.\n\nsendto / recvmsg: 소켓에서 메시지를 보내고 받습니다.\n\ngetpid / getuid: 프로세스 및 사용자 ID를 가져옵니다.\n\ngetaddrinfo / getnameinfo / freeaddrinfo: 주소 정보를 관리합니다.\n\nstrerror / gai_strerror: 오류 코드를 사람이 읽을 수 있는 문자열로 변환합니다.\n\nprintf 및 관련 함수: 데이터를 출력합니다.\n\n사용법\nft_ping을 사용하려면 make를 사용하여 프로젝트를 컴파일하세요. 이렇게 하면 ft_ping 실행 파일이 생성됩니다. 그런 다음 대상 호스트를 인수로 실행 파일을 실행하세요.\n\n기본 사용법\n./ft_ping [host]\n\n상세 모드\n상세 출력을 활성화하려면 -v 옵션을 사용하세요.\n./ft_ping -v [host]\n\nDocker를 이용한 테스트\nDebian 11이 설치된 Docker를 사용하여 ft_ping 프로젝트를 테스트할 수 있습니다. 다음 셸 스크립트를 실행하세요:\n./myScript.sh\n\n이 스크립트는 Debian 11이 설치된 Docker 컨테이너를 설정하여 격리된 환경에서 프로젝트를 테스트할 수 있게 해줍니다.\n다른 운영 체제용 컴파일\n제공된 Makefile을 사용하면 MacOS와 Linux를 포함한 다른 운영 체제용으로 프로젝트를 컴파일할 수 있습니다.\n\nMacOS 컴파일\nMacOS용으로 컴파일하려면 다음 명령어를 사용하세요:\nmake macos\n\nLinux 컴파일\nLinux용으로 컴파일하려면 다음 명령어를 사용하세요:\nmake linux\n\n이를 통해 프로젝트를 다양한 플랫폼에서 문제없이 컴파일하고 실행할 수 있습니다.\n이 README.md 파일에는 이제 Debian 11을 사용한 Docker 테스트와 Makefile을 사용한 다른 운영 체제용 컴파일에 대한 추가 정보가 포함되어 있습니다.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhojsong%2Fft_ping","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhojsong%2Fft_ping","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhojsong%2Fft_ping/lists"}