Hello everybody,
I'm having troubles on setting the default gateway address (and other addresses, such as netmask, or ip) of the host running a C program. I know it has to be with ioctl, but don't know how to do it.
Could somebody give me an example on how to set the default gateway address of a determinated device from the C program?
Usually, even in C, you'd just use the commandline tools. This will make for a much more portable program. Otherwise, the ioctl's will vary wildly across systems. I'm not sure it even uses ioctl to do so in linux at all, for that matter -- it might be netlink these days, which is a lot more impenetrable.
Suppose you have IP 192.168.1.2, mask 255.255.255.0, DNS server 192.168.1.1, gateway 192.168.1.1. You can change the IP and netmask of an interface with the ifconfig tool, like so:
You can alter DNS parameters by managing the list of hosts in /etc/resolv.conf .
And gateways are done through the route command.
If you really insist on doing it with ioctl, try runing strace ifconfig eth0 ip 192.168.1.2 netmask 255.255.255.0 to see what raw ioctl it uses; that's how I found things like the serial port ioctls...
Last edited by Corona688; 08-17-2010 at 12:23 PM..
Reason: fixed mutation
The ifconfig source code file you want to look at is changeif.c. You can find it via Koders Open Source Search Engine or in the source code of any of the major GNU/Linux distributions.
Just to update, i found a easier solution to this problem.
Intead of using system() to run command-line programs, you can add a default gateway route by ioctl with SIOCADDRT and SIOCDELRT, it's very simple.
Hope this helps someone.
Dear friends
I use RedHat 6.5, which sets the gateway in the configuration file / etc / sysconfig / network as GATEWAY = 192.168.1.26, and the gateway in the configuration file / etc / sysconfig / network-scripts / ifcfg-eth11 as GATEWAY = 192.168.1.256. The two gateways are different.... (6 Replies)
Hi all,
i have a rhel 6.2 with a default gateway.
This server is an Intranet office with no internet access.
DNS are already configured and it's possible to resolve my target.
My goal is to link my application (apache forward) only to http://mytarget.yyy through a new gateway (That does... (0 Replies)
Hi All,
I have a requirement to make a oracle concurrent program end with
warning based on a given condition. If the condition is true, the
concurrent program should end with completed warning status.
The host program I am using is a shell script that checks if a file exists.
... (2 Replies)
I have an Oracle Linux 7.1 vsphere host built. It's be preconfigured with our security configurations.
What I would like to do is unconfigure this host. Then set the host to do firstboot --reconfigure.
how do I do that using /etc/sysconfig/firstboot?
I've tried setting
... (10 Replies)
Can anyone suggest a workaround
zone_5.org='/qaz/qwe/path/tns.osn'
output
/home/bingo/XXX_script.sh: line 180: zone_5.org=/qaz/qwe/path/tns.osn: no parent
The path does not exist on the local machine, the allocation used to work till the server was upgraded.
Red Hat Enterprise Linux... (2 Replies)
I need to know what is the maximum stack size i.e. -Xss my java program is running with.
Is there a way to find that out from inside my java program code and outside of it.
What i am looking for is to read whatever the current set max limit -Xss (stack sie) is for a particular JVM(not... (3 Replies)
I have my Mac OS X program executing a shell script (a script that copies files to a drive). I want to make it so that the shell script automatically kills itself if it finds that the host .app is not running OR kill itself if the drive that it is copying files to has been unmounted. Right now what... (2 Replies)
hi, linux gurus...
i'm trying to write a script in ksh called ResetPass that allows a user to change mysql passwords. the script accepts user, password and host like this: ResetPass <user> <password> <host>. here's the code:
*****************************************************
mysql... (1 Reply)
Hi,
I want to end a host (shell script based) concurrent program in WARNING. Is it possible? Tried out a few things but it just either ends in NORMAL or ERROR. :confused:
Any ideas/inputs would be appreciated.
Thanks,
coolblue_3 (2 Replies)