You can block the access page for all IPs, but a whitelist.
function page_ip_restriction() {
if(is_page('yourpage'))
{
// Whitelist
$whitelist = array(
'127.0.0.1',
'127.0.0.2',
'127.0.0.3',
);
// Check if current user IP is out of the whitelist, then redirect to home
if(!in_array($_SERVER['REMOTE_ADDR'], $whitelist))
{
wp_redirect(home_url(), 403); // 403 -> Forbiden access
exit();
}
}
}
add_action('init', 'page_ip_restriction', 10);
For your submenu, you have two ways, the wordpress one, or a css exclusion. But IMO, WordPress menus are really heavy to use.
If you want better IP address tracking, use a librairy.
Hope it's help you !