Hello,
I don't think you will be able to filter the Role list on login panel without touching core.
If I understand your need, you can have a plugin that will extends AbstractEventHandler and checks for IEventTopics.AFTER_LOGIN.
From there, you can check the IP and see if the selected role is appropriate.
If not, you call the addErrorMessage(event, String msg) method to forbid user to log in
Regards,
Nicolas