Given a network name and a country name, this prints the corresponding MCC and MNC or "undefined" if the name is not found.
Both network (operator) and country name are case insensitive, but you need to type them exactly as you find them in libgnokii (use gnokii --listnetworks to see all network names known by libgnokii and please report to the gnokii mailing list if you find errors or omissions).

Examples:

$ network_code vodafone italy
222 10
$ network_code vodafone germany
262 02

Source code:

/*

  $Id:$

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

  Copyright (c) 2006 by Daniele Forsi

  Prints the MCC and the MNC corresponding to the given network (operator)
  and country names (case insensitive).
  Prints "undefined" if the name is not found.

  gcc -Wall network_code.c -o network_code $(pkg-config --libs gnokii)
  network_code vodafone italy
  222 10
  network_code vodafone Germany
*/

#include <stdio.h>

#include <gnokii.h&t;

int main( int argc, char *argv[] ) {
	char *country, *code;

	if ( argc == 3 ) {
		country = argv[ 2 ];
	} else {
		printf( "Usage: %s network_name country_name\n", argv[0]);
		return 1;
	}
	
	code = gn_network_code_find(argv[1], country);
	printf("%s\n", code );

	return 0;
}