diff --git a/CMakeLists.txt b/CMakeLists.txt
old mode 100644
new mode 100755
index 35b070543c130e17f09856dd803c8d8a84b7b5f5..c866cce56b8c031217a77297700fde69beebf789
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.0)
 project (dap_chain_net)
   
 set(DAP_CHAIN_NET_SRCS 
@@ -13,8 +13,12 @@ set(DAP_CHAIN_NET_HEADERS
         dap_chain_node_ctl.h
     )
 
+set(IPUTILS_INCLUDE_DIRS
+     iputils/traceroute/
+    )
+
 file(GLOB IPUTILS_SRCS iputils/*.c iputils/traceroute/*.c)
-file(GLOB IPUTILS_HEADERS iputils/*.h iputils/traceroute/*.h)
+file(GLOB IPUTILS_HEADERS iputils/*.h ${IPUTILS_INCLUDE_DIRS}*.h)
 
 add_library(${PROJECT_NAME} STATIC ${DAP_CHAIN_NET_SRCS} ${DAP_CHAIN_NET_HEADERS} ${IPUTILS_SRCS} ${IPUTILS_HEADERS})
 
@@ -22,7 +26,7 @@ find_package(PkgConfig REQUIRED)
 pkg_search_module(GLIB REQUIRED glib-2.0)
 
 target_link_libraries(dap_chain_net dap_core dap_crypto dap_chain dap_chain_crypto -lresolv ${GLIB_LDFLAGS})
-target_include_directories(dap_chain_net INTERFACE . PUBLIC ${GLIB_INCLUDE_DIRS})
+target_include_directories(dap_chain_net INTERFACE . PUBLIC ${GLIB_INCLUDE_DIRS} ${IPUTILS_INCLUDE_DIRS})
 
 set(${PROJECT_NAME}_DEFINITIONS CACHE INTERNAL "${PROJECT_NAME}: Definitions" FORCE)
 
diff --git a/iputils/ping.h b/iputils/ping.h
index 1f3a06f4179f413eeeaca3f572e64f9cadd86526..6715407e3ce79bb2e2f09f5552191534fcacc2d8 100644
--- a/iputils/ping.h
+++ b/iputils/ping.h
@@ -9,7 +9,7 @@
 #include <linux/types.h>
 #include <linux/sockios.h>
 #include <linux/ipv6.h>
-
+# define __USE_KERNEL_IPV6_DEFS
 #include <sys/file.h>
 #include <sys/time.h>
 #include <sys/ioctl.h>
@@ -24,7 +24,7 @@
 #include <asm/byteorder.h>
 #include <sched.h>
 #include <math.h>
-#include <netinet/in.h>
+
 #include <netinet/ip.h>
 #include <netinet/ip6.h>
 #include <netinet/ip_icmp.h>